Git:合并后面的变化

场景:

  • 计算机A和计算机B都从Github克隆了一个git仓库。
  • 在计算机A上,我对存储库进行更改,提交并推送到Github。
  • 在计算机B上,我对其他无关的文件进行了更改,然后进行提交。
  • 在计算机B上,我尝试推送,但不能,因为我忘了先修改我的更改。
  • 在计算机B上,我拉取更改,并且git创建一个“合并分支'master'github.com:user/repo”提交。
  • 在计算机B上,我将更改推送到Github,但在提交历史记录中有一个恼人的和不必要的“合并”提交。
  • 我如何使用git merge在所有未被推送的提交之前放置合并提交? 没关系,如果这弄乱了未完成提交的SHA。

    我需要git rebase的东西吗?


    最简单的方法来避免“烦人的”合并提交:

    git pull --rebase
    

    这会自动改变计算机B上的更改,使历史看起来是线性的。 有关rebase的更多信息,请看这个答案。

    如果你已经将你的合并提交从计算机B推送到github,那就太晚了:这个合并提交将永远留在那里。 如果不是,你仍然可以重新绑定。 但是,简单地git pull --rebase以避免将来会更容易。


    如果你想git pull默认有一个rebase行为,你也可以把它放在你的配置中:

    git config --global branch.autosetuprebase always
    

    当您为每个分支拉动时,配置中的这个选项将设置rebase行为。 如果你想在设置完成后进行合并,你可以使用--no-rebase选项来完成。

    git pull --no-rebase
    
    链接地址: http://www.djcxy.com/p/45091.html

    上一篇: Git: merge behind changes

    下一篇: Git Pull vs Git Rebase