为什么 git pull 不恢复删除的文件?
Why git pull doesnt' restore deleted files?
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 2.9 或更高版本):
git config --global pull.rebase true
git config --global rebase.autoStash true
然后一个简单的 git 拉取将在您正在获取的内容之上重播(变基)您的本地提交(包括您的文件重命名)。
"Why git pull doesnt' restore deleted files?
因为合并会用合并的内容覆盖本地修改(如文件重命名)。
与变基相反,变基会在获取的内容之上对您自己的本地工作(如文件重命名)进行变基。
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 2.9 或更高版本):
git config --global pull.rebase true
git config --global rebase.autoStash true
然后一个简单的 git 拉取将在您正在获取的内容之上重播(变基)您的本地提交(包括您的文件重命名)。
"Why git pull doesnt' restore deleted files?
因为合并会用合并的内容覆盖本地修改(如文件重命名)。
与变基相反,变基会在获取的内容之上对您自己的本地工作(如文件重命名)进行变基。