【问题标题】:Git merge from same branch?Git从同一个分支合并?
【发布时间】:2022-01-05 04:51:44
【问题描述】:

我有一个分支,形式为:

 a --> b --> c
 ^           ^
 |           |
main        dev

我想在ac 之间建立另一个连接。视觉效果:

 ----> b --->
 |          |
 a -------> c
 ^          ^
 |          |
main       dev

我将如何使用 git 执行此操作?有可能吗?

【问题讨论】:

  • 看看这个:git-scm.com/docs/git-merge.
  • a,b,c 提交了吗?
  • @JRichardsz 是的,它们是提交。很抱歉没有在我的问题中澄清这一点。
  • Using git merge while c is the current commit 不会做任何事情,因为这种合并中的快照将与 c 中的快照匹配,并且历史(祖先图)不会真的以任何有用的方式有所不同。请参阅eftshift0's answer 了解如何进行这样的提交,但是:为什么?
  • 注意,顺便说一下,在 Git 中,箭头是“向后”的,从孩子到父母。 is-ancestor 测试必须从 child/grand^n-child 向后工作,以查看另一个提交是否是 parent/grandparent/grand^n-parent。

标签: git git-merge git-branch


【解决方案1】:

假设你想在新版本中保留c的内容

git commit-tree -p main -p b -m "one comment" c^{tree}

这会给你一个修订ID作为结果。随时与git loggit checkout.. 联系,当你觉得这就是你想要的:

git branch -f dev the-id

你已经完成了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-21
    • 2022-08-17
    相关资源
    最近更新 更多