假设我们有两个 git 分支,a
和b
(为了简单起见,说他们都是本地人)。分公司a
是我的合作伙伴,分支b
不是;我不能碰它。
我想“声明”或“标记” b
的 merge 进入a
,而不实际对分支 a
中的代码进行任何更改。我不介意做一个空的提交来表示 merge 。动机是分支上发生了冗余工作b
这包含在 a
上所做的工作中因为他们分歧。
假设这是一件“合法”的事情 - 惯用的方法是什么?
最佳答案
我认为它可以很容易地做成这样:
git commit-tree -p a -p b -m "not pulling b changes" a^{tree}
这样,您就要求 git 创建一个新的修订对象,该对象以 a
和 b
作为父级,并具有 a
树作为它的树(因此与 a
没有区别),它具有我在那里提供的注释(随意调整)。该对象将被创建,并且 id 将被打印在标准输出上。您可以检查它以确保它是您想要的:
git diff that-id a
git log that-id
gitk that-id
应该没有区别。如果您喜欢的话,您可以移动它:
git branch -f a that-id
关于git - 如何将 git 分支声明为 merge 而不采用其中的更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65498997/