在签出前一次提交后如何合并到本地分支

时间:2012-07-10 11:42:24

标签: git merge commit

我正在当地一家分行VISS工作。然后我决定查看之前的提交:

  

git checkout 98ea3c8042c39e

我对代码做了一些重要的更改。然后我再次承诺。

现在我需要回到我的分支VISS来保持这些变化。

如果我愿意,我该怎么办?

  1. 返回我的VISS分支,在签出之前的提交(98ea3c8042c39e)之前放弃已完成的工作。

  2. 返回我的VISS分支,将新更改与我在VISS顶部所做的更新。

1 个答案:

答案 0 :(得分:2)

  1. 回到您的分行并丢弃所有内容:

    git checkout VISS
    

    您在98ea3c顶部的新提交将在不知名的地方浮动,并最终将被git垃圾收集。

    相反,如果您愿意将98ea3c置于VISS的顶部并放弃VISS当前指向的内容,请执行以下操作:

    git checkout VISS
    git reset --hard 98ea3c
    
  2. 返回VISS并在其顶部合并您的新更改:

    # On the new commit you just made:
    git rebase VISS
    
    # Now take note of what the commit ID is.  Assume I got "abc123"; then:
    git checkout VISS
    git merge abc123
    

    现在,您将VISS更改为最新提交,并且没有合并提交。