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

问题描述 投票:2回答:1

github上有两个远程回购:

repo_course:课程讲师定期发布新的任务框架代码;

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

它的工作方式如下:

git clone <repo_me url>:在我的计算机上创建本地工作仓库,这是空的

git add remote skeleton <repo_course url>

git pull skeleton master:获取骨架代码,完成它,并将push添加到repo_me

我的问题是:

假设我拉skeleton.java并重命名或删除它,然后我再次git pull skeleton master,它将无法恢复。这是为什么?似乎pull将在上一次pull上添加新的骨架文件一次。这样设计的好处是什么?

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

git pull
1个回答
1
投票

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

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

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

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

因为合并将覆盖与合并的内容的本地修改(如文件重命名)。 与rebase相反,rebase将取决于你所拥有的本地工作(如文件重命名)。

© www.soinside.com 2019 - 2024. All rights reserved.