在一个分支上开发了很长一段时间后,我切换到了master。日志显示:

你的分支比“origin/master”慢了167次提交,并且可以快进。

我试着:

git checkout HEAD

它没有任何效果。这是因为我在master上签出了一个中间提交。

我怎样才能使主人保持头脑清醒?


当前回答

做的事情:

git checkout master
git pull origin

将获取并合并origin/master分支(你可能会说git pull as origin是默认的)。

其他回答

做的事情:

git checkout master
git pull origin

将获取并合并origin/master分支(你可能会说git pull as origin是默认的)。

要将当前本地跟踪器分支移动到最新的远程状态之上,需要重新设置本地跟踪器分支:

git fetch && git rebase

一般来说,快进和删除本地更改(硬重置)*:

git fetch && git checkout ${the_branch_name} && git reset --hard origin/${the_branch_name}

快进并保持本地更改(rebase):

git fetch && git checkout ${the_branch_name} && git rebase origin/${the_branch_name}

* -要撤消无意硬重置造成的更改,首先做git reflog。它以相反的顺序显示HEAD的状态。找到HEAD在重置操作之前指向的散列(通常是明显的),并将分支硬重置到该散列。

如果你在树枝后面的某个地方, 更安全的做法是将你所做的任何局部更改重新设置为:

git pull --rebase

这有助于防止不必要的合并提交。

(这与执行git fetch && git rebase相同。)

不需要复杂。你就站在你的树枝上,做一个git拉。这对我很管用。

或者,作为第二次尝试,git拉origin master。但这只是以防万一,如果你第一个命令不走运的话。

将分支指针移动到HEAD:

git branch -f master

你的分支主机已经存在,所以Git不允许你覆盖它,除非你使用…-f(这个参数代表——force)

或者你可以使用rebase:

git rebase HEAD master

请自行承担风险;)