Change structure of project folder with Git
I have this structure:
project-folder/
.git
wp-admin/
wp-content/
wp-includes/
.htaccess
...
I want this structure:
project-folder/
.git
public
wp-admin/
wp-content/
wp-includes/
.htaccess
...
The benefits
- Keep away from the Internet my
.git
folder - Wordpress files separated in a sub-folder
- Keep Git history changes
- Hide from the Internet deployment scripts or project sensitive informations
Move files with git and keep file history
-
Be sure you don't have files uncommitted, if not commit them before next step.
git status
-
In project-directory create
public
subfoldermkdir public
-
Move files with
git mv
exceptpublic
subfolder to avoid errorsfor file in $(ls | grep -v 'public'); do git mv $file public; done;
-
Move specific files like .htaccess etc...
git mv .htaccess public/
-
Commit changes
git commit -m 'Moved files to public/'
-
That's all !
git log -M summary
To see file history of moved files
In Bash:
git log --follow
http://git-scm.com/docs/git-log
In SourceTree:
On logging file(s) you have to check [x] Follow renamed files
I'm not sure what specific problem it's solving with Explorer, but as far as the actual tracking of renames through Git history is concerned,
git mv
functionally equivalent to:In terms of being able to follow the history of a file through renames in Git, neither approach do a better job.