我的问题可能不是git的标准用法,但我有一个分支(表示为A),它实现了一些特性,可能需要很长时间来批准。它还没有合并到master。现在我正在处理分支B,希望有来自A的特性来进行调试。但我不想将A合并到B,因为这会污染我的提交历史。有没有可能告诉git合并但不进行任何操作?
cuxqih211#
一个简单的解决方案是创建一个新的分支“C”作为B的副本,然后将A合并到C中。这样B就可以保持原样,但您仍然可以测试您喜欢的任何内容。这是我个人更喜欢的,因为在我看来,这是您实际上想要实现的。您不必发布C,但您可以选择发布它,例如,如果合并很复杂,您希望保存它。另一个替代方法是git merge <name-of-branch> --no-commit --no-ff在这里您可以找到更多详细信息:Git merge without auto commit
git merge <name-of-branch> --no-commit --no-ff
i7uq4tfw2#
你可以把B放在A的上面,然后,当你决定把B合并到分支mainOrMaster中时,你可以这样做来清除A中的内容:
B
A
mainOrMaster
git rebase A B --onto mainOrMaster
这将获得组成B的所有提交,这些提交不是A的一部分,并将它们放在mainOrMaster之上。
2条答案
按热度按时间cuxqih211#
一个简单的解决方案是创建一个新的分支“C”作为B的副本,然后将A合并到C中。这样B就可以保持原样,但您仍然可以测试您喜欢的任何内容。这是我个人更喜欢的,因为在我看来,这是您实际上想要实现的。您不必发布C,但您可以选择发布它,例如,如果合并很复杂,您希望保存它。
另一个替代方法是
git merge <name-of-branch> --no-commit --no-ff
在这里您可以找到更多详细信息:Git merge without auto commit
i7uq4tfw2#
你可以把
B
放在A
的上面,然后,当你决定把B
合并到分支mainOrMaster
中时,你可以这样做来清除A
中的内容:这将获得组成
B
的所有提交,这些提交不是A
的一部分,并将它们放在mainOrMaster
之上。