【问题标题】:Merge branch to master with all changes? [duplicate]合并分支以掌握所有更改? [复制]
【发布时间】:2012-06-02 06:16:05
【问题描述】:

我有时发现我正在处理一个分支,我想将分支中的所有更改合并到我的主分支中,以便主分支是我刚刚使用的分支的克隆。是否有一种简单的方法来更新 master,以便分支中的所有更改都合并到 master 中。我正在寻找的行为是 master 将成为分支的精确克隆。我通常一次将单个冲突合并到 master 中,但是有没有更简单的方法来做到这一点?感谢您的宝贵时间。

【问题讨论】:

  • 谢谢,这正是我想要的。

标签: git merge


【解决方案1】:

git reset --hard 带有你想成为新的主负责人的提交的 id 应该是你的解决方案。

http://git-scm.com/2011/07/11/reset.html

编辑:我会在重复标记它: How to replace master branch in git, entirely, from another branch?

查看我提到的副本中的解决方案。但根据所需的结果,我建议的重置可能是解决方案。

【讨论】:

  • 请记住,当您执行此操作时,您将丢失您在 master 中所做的所有提交,这些提交不在分支中。 (您可以联系他们,但他们不会再在分支中了。)
  • 我认为这就是重点。
  • 可能是这样。 (我发现这个问题有点不清楚;“分支的克隆”在技术上意味着一个单独的副本。)
  • 克隆是一个糟糕的词选择。我试图指出分支的确切版本。
【解决方案2】:

如果要保留历史记录,请使用ours 合并策略:

git checkout branch
git merge -s ours master

如果你不关心你的 master 分支的历史,重置它:

git checkout master
git reset --hard branch

(这将丢弃所有您的本地更改并使master的提交无法访问!)

如果您的 master 中没有任何不在您的分支中的提交,您可以将 master 快进到您的分支:

git checkout branch
git merge master
# or `git merge --ff-only master` to only allow fast-forward

【讨论】:

  • 最后一个例子将master合并到分支中,而不是相反,不是吗?那个标志应该是--ff-only吗?
  • @spinup: 是的,--ff-only,感谢您指出这一点:) 至于合并的方向,OP 询问“Stack Overflow 那master 将成为分支的精确克隆”这就是命令的作用
猜你喜欢
  • 1970-01-01
  • 2020-02-21
  • 2018-12-23
  • 2019-04-28
  • 1970-01-01
  • 2015-03-12
  • 1970-01-01
  • 2021-01-08
  • 2022-01-26
相关资源
最近更新 更多