# 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
1. Be sure you don't have files uncommitted, if not commit them before next step.
`git status`
2. In project-directory create `public` subfolder
`mkdir public`
3. Move files with `git mv` except `public` subfolder to avoid errors
`for file in $(ls | grep -v '^public$'); do git mv $file public; done;`
4. Move specific files like .htaccess etc...
`git mv .htaccess public/`
5. Commit changes
`git commit -m 'Moved files to public/'`
6. 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](http://git-scm.com/docs/git-log)
### In SourceTree:
On logging file(s) you have to check `[x] Follow renamed files`