繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM