在一个分支上开发了很长一段时间后,我切换到了master。日志显示:
你的分支比“origin/master”慢了167次提交,并且可以快进。
我试着:
git checkout HEAD
它没有任何效果。这是因为我在master上签出了一个中间提交。
我怎样才能使主人保持头脑清醒?
在一个分支上开发了很长一段时间后,我切换到了master。日志显示:
你的分支比“origin/master”慢了167次提交,并且可以快进。
我试着:
git checkout HEAD
它没有任何效果。这是因为我在master上签出了一个中间提交。
我怎样才能使主人保持头脑清醒?
当前回答
如果你在树枝后面的某个地方, 更安全的做法是将你所做的任何局部更改重新设置为:
git pull --rebase
这有助于防止不必要的合并提交。
(这与执行git fetch && git rebase相同。)
其他回答
在我的方式,它返回所有改变的头,是最快的方式:
git fetch origin master
git reset --hard FETCH_HEAD
git clean -df
git checkout master
git pull
应该做这份工作。
每次当你在不同于master的分支上工作时,你都会得到“你的分支落后”消息,有人对master进行了更改,而你git拉。
(branch) $ //hack hack hack, while someone push the changes to origin/master
(branch) $ git pull
现在,源/主引用被拉出,但您的主引用没有与其合并
(branch) $ git checkout master
(master) $
现在master在origin/master后面,可以快速前进了
this will pull and merge (so merge also newer commits to origin/master)
(master) $ git pull
this will just merge what you have already pulled
(master) $ git merge origin/master
现在你的master和原点/master是同步的
尝试git合并origin/master。如果你想确保它只做快进,你可以说git merge——ff-only origin/master。
对于任何想要快进的人来说,如果不签出该分支,他们就不能进入另一个远程分支(包括它本身)。你可以:
git fetch origin master:other
如果您不在其他分支上,这基本上会将other的索引快速转发到origin/master。您可以通过这种方式快速前进多个分支。
如果你在另一个分支上工作了一段时间,并且想要从远程更新过时的分支到它们各自的头:
git fetch origin master:master other:other etc:etc
如果你站在不同的分支上,想要签出master的最新版本,你也可以这样做
git checkout -B master origin/master