10

我有一个开发服务器和几个生产服务器。我确实从开发人员提交到远程存储库并进行了git push production设置,这会从生产服务器发出拉取。我需要从跟踪中删除几个带有静态文件的目录,所以我这样做了

从 Git 存储库中删除现有文件 (摘要:did git rm --cached myfolders,然后添加到 .gitignore 文件夹中)

我还没有提交更改。执行时文件显示为已删除git status

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

我担心的是:执行时是否会从生产服务器(从磁盘)中删除“已删除”文件git pull?我只是希望它们不被跟踪,而不是从磁盘中删除。

谢谢

4

3 回答 3

13

是的,如果您拉取包含删除的提交,则文件将被删除。之后您需要手动恢复文件。

于 2011-08-17T19:55:50.030 回答
5

是的,如果您执行git pull. Git 不能做任何其他事情——假设存储库中的某些代码取决于某个文件的存在或不存在。删除文件可能会产生重大影响,因此 Git 在拉取文件时必须删除该文件。

于 2011-08-17T19:56:08.537 回答
2

正如其他人回答的那样,您需要手动恢复已删除的文件。你可以这样做

git checkout sha1 -- file1.jpg file2.jpg

sha1合并之前的提交在哪里。有多种方法可以得到那个,比如HEAD~1从 pull 的输出中使用或最简单的副本。有类似的东西

Updating bea26f6..d5a6bc6

第一次提交是您之前在本地进行的提交。

于 2021-03-19T15:12:57.250 回答