在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
恢复已删除的文件,该怎么办?
答案 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会根据提取的内容重新定义您自己的本地工作(如文件重命名)。