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

时间:2018-03-06 05:03:45

标签: git pull

在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恢复已删除的文件,该怎么办?

1 个答案:

答案 0 :(得分:1)

如果您希望重播您的作品,而不是将其作品合并,请尝试(使用Git 2.9或更高版本):

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

然后一个简单的git pull将在您提取的内容之上重放(rebase)您的本地提交(包括您的文件重命名)。

  

&#34;为什么git pull不会&#39;恢复已删除的文件?

因为合并会覆盖与合并内容的本地修改(如文件重命名) 与rebase相反,rebase会根据提取的内容重新定义您自己的本地工作(如文件重命名)。