git - 将分支“tag”移动到其他提交?

时间:2012-03-02 15:57:42

标签: git

由于分支或多或少只是一个标记,它会自动移动到新的提交,我想知道我是否可以修改这个“标记”。

示例:

             master  
A -- B -- C -- D

git checkout mastergit checkout D

相同

我可以将master更改为指向提交B吗?

   master
A -- B -- C -- D

git checkout master现在与git checkout B

相同

使用案例

想象一下有人将一个提交推送到在线存储库。当我执行git fetch时,我将此提交设置为本地,但我的主分支仍然指向提交之前,而origin / master指向新提交。我只想将本地主分支移动到与origin / master指向相同的提交。

所以,我不必合并。

感谢您的帮助

4 个答案:

答案 0 :(得分:8)

重新创建分支以指向提交

git branch -f master D

使用git branch代替git reset --hard甚至可以保留您的工作目录。

答案 1 :(得分:1)

这应该有效:

git reset --hard origin/master

答案 2 :(得分:0)

我找到了另一个解决方案:

git fetch
git checkout origin/master
git branch -d master
git branch master

对我来说更合乎逻辑

答案 3 :(得分:0)

knittis解决方案的注释:

在调用重新创建branchname(master)以指向提交

之后
git branch -f branchname D

不要忘记通过以下方式同步HEAD和branchname(master):

git checkout branchname