为什么 git pull 不恢复删除的文件?

Why git pull doesnt' restore deleted files?

github 上有两个远程仓库:

repo_course:课程讲师定期发布新作业骨架代码;

repo_me:我自己完成的作业代码要评分;

它是这样工作的:

git clone <repo_me url>: 在我的电脑上创建本地工作仓库

git add remote skeleton <repo_course url>

git pull skeleton master:获取框架代码,完成它,然后pushrepo_me

我的问题是:

假设我拉了skeleton.java重命名或删除了,然后我又git pull skeleton master,它不会恢复。这是为什么?自上次以来,pull 似乎只会在第一个 pull 添加一次新的骨架文件。这样设计有什么好处呢?

如果我确实需要从 repo_course 恢复已删除的文件,我该怎么办?

如果你想重播你的作品,而不是合并他们的作品,请尝试(使用 Git 2.9 或更高版本):

git config --global pull.rebase true
git config --global rebase.autoStash true

然后一个简单的 git 拉取将在您正在获取的内容之上重播(变基)您的本地提交(包括您的文件重命名)。

"Why git pull doesnt' restore deleted files?

因为合并会用合并的内容覆盖本地修改(如文件重命名)。
与变基相反,变基会在获取的内容之上对您自己的本地工作(如文件重命名)进行变基。