Mecca
Mecca

Reputation: 659

Git pull - deleted files

I have a development server and a couple of production ones. I do commits from the dev to a remote repository and have git push production setup, that issues a pull from the production servers. I needed to remove a couple of directories with static files from being tracked so I did this

Remove an Existing File from a Git Repo (summary: did git rm --cached myfolders, and after that added to .gitignore the folders)

I have not yet committed the changes. The files show as deleted when doing git status

#       deleted:    file1.jpg
#       deleted:    file2.jpg
#       deleted:    file3.jpg
#       deleted:    file4.jpg
#       deleted:    file5.jpg

My concern is: will the 'deleted' files be removed from production servers (from disk) when git pull is being performed? I just want them untracked, but not deleted from disk.

Thanks

Upvotes: 12

Views: 14716

Answers (3)

inetphantom
inetphantom

Reputation: 2594

As the others answered, you need to restore the deleted files manually. You can do that with

git checkout sha1 -- file1.jpg file2.jpg

where sha1 is the commit beofre the merge. There are multiple ways to get that one, like with HEAD~1 or the easiest copy from the output from the pull. There is something like

Updating bea26f6..d5a6bc6

where the first commit was the one you had localy before.

Upvotes: 2

Greg Hewgill
Greg Hewgill

Reputation: 994531

Yes, the files will be deleted if you do a git pull. Git couldn't do anything else - suppose some code in the repository depended on the existence or non-existence of some file. Removing a file might have a significant resulting behaviour, so Git must remove the file when pulling.

Upvotes: 5

Amber
Amber

Reputation: 527328

Yes, if you pull a commit that includes deletions, the files will be deleted. You'll need to restore the files manually afterwards.

Upvotes: 14

Related Questions