[英]Why git pull doesnt' restore deleted files?
github 上有两个远程仓库:
repo_course
:课程导师定期发布新的作业骨架代码;
repo_me
:我自己完成的作业代码来评分;
它是这样工作的:
git clone <repo_me url>
:在我的计算机上创建本地工作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
恢复我删除的文件,我repo_course
怎么repo_course
?
如果您希望重播您的工作,而不是合并他们的工作,请尝试(使用 Git 2.9 或更高版本):
git config --global pull.rebase true
git config --global rebase.autoStash true
然后一个简单的 git pull 将在您获取的内容之上重放(rebase)您的本地提交(包括您的文件重命名)。
“为什么 git pull 不能恢复已删除的文件?
因为合并会用合并的内容覆盖本地修改(如文件重命名)。
与 rebase 不同,它会将您自己的本地工作(如文件重命名)重新设置在获取的内容之上。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.