在git中修复合并提交

时间:2017-08-16 16:16:36

标签: git git-merge git-reset

我搞砸了。我将其他分支合并到我的分支机构。双方的变化都是巨大的,所以我花了很长时间来解决冲突。提交合并后,我意识到我忘了添加一个文件,因此合并提交不完整。我不想用“遗忘的变化”提交来污染历史,所以我决定在推送前修复它。我打电话了

a1

然后我添加了错过的更改并想重新提交。但是,git不再知道它应该是一个合并提交。没有重新进行整个合并,有什么办法吗?

2 个答案:

答案 0 :(得分:2)

如果我想修改我的上次提交(无论是合并提交还是正常提交​​),我会怎样做:

  1. 进行更改(在您的情况下添加文件)
  2. 推动变革。例如。 git add .
  3. 使用

    将更改添加到上次提交
      

    git commit --amend

  4. 你已经完成了

    由于你不再那样了,首先你必须回到那里。怎么样?

    1. 列出您拥有的最后一个引用,以便找出要恢复的合并提交的哈希值。执行

        

      git reflog

    2. 在该列表中搜索并复制合并提交的哈希值。寻找像 [...] merge origin / blablabal 这样的东西,就像 [...]重置移动到HEAD〜

    3. 之类的东西
    4. 重置为该提交(就好像您还没有完成git reset --soft HEAD~

        

      git reset --hard HASH_FROM_BULLET_2

    5. 现在您已经提交了原始合并,现在您可以从头开始执行4,5和6。

答案 1 :(得分:1)

您可以签出分支上的特定提交,因此在合并发生之前返回并重做所有内容。

继续合并分支:

git log

enter image description here

将显示分支上的所有提交以及关联的ID(或密钥),只需复制所需提交密钥的第一个字母

git checkout [commit_id you copied]

您现在应该在合并之前在分支上。 如果您希望继续浏览提交,可以通过提交ID继续结帐。