- 已关闭**。此问题需要details or clarity。当前不接受答案。
- 想要改进此问题?**添加详细信息并通过editing this post阐明问题。
2小时前关门了。
Improve this question
我想知道根据约定提交解决冲突的提交类型应该是什么。请考虑以下场景
我在A分部
检验分支B
化解矛盾
添加。
根据公约承诺,这种承诺的类型应该是什么?
2小时前关门了。
Improve this question
我想知道根据约定提交解决冲突的提交类型应该是什么。请考虑以下场景
我在A分部
检验分支B
化解矛盾
添加。
根据公约承诺,这种承诺的类型应该是什么?
1条答案
按热度按时间hmae6n7t1#
**tl;dr:**通常你不应该有一个新的提交来解决冲突,而是应该有其他的提交来解决冲突。因此,你不需要一个特定的标题来解决冲突。
免责声明:我以前从未真正使用过常规提交,但是我读过几次规范。
详细示例:
假设你有一个分支
feat/add-new-thingy
,有两个新的提交,想象一下当你运行git log --oneline
时,你会看到:假设你尝试使用Pull Request将分支合并到GitHub上的
main
,但是远程版本的main
比你开始的版本要早,并且你当前有冲突。在获取并运行git log origin/main --oneline
后,你会看到如下所示:在你的分支上,你添加了一个新特性,但也修复了一个堆栈溢出错误。看起来其他人也修复了堆栈溢出错误,但可能是用了与你不同的方法。这种可能性很大(但不一定)产生冲突的原因。为了解决冲突,您通常会将
merge
中最新版本的origin/main
添加到您的分支中,或者你可以把你的分支rebase
到最新的origin/main
上,让我们先看看merge
会发生什么:如果没有冲突,你现在只会得到一个带有“Merge remote-tracking分支'origin/main' into feat/add-new-thingy”消息的合并提交。注意,如果你愿意,你可以修改合并提交消息,但即使你这样做了也没有必要为合并提交使用约定提交类型,因为每个相关的提交都已经指定了它们的类型。
如果你 * 确实 * 有冲突,那么你就解决它们并提交合并,通常你不需要修改合并提交消息,相比之下,没有冲突的合并提交消息会是什么样子。**因此,即使有冲突,你的合并提交消息也只是一个普通的合并提交消息。**在合并了你解决的冲突之后,你只需推送:
如果选择通过重定基准来解决冲突,而不是合并,例如:
为了解决冲突,您将在提交每个有冲突的提交之前被停止,在本例中,最有可能是在2次提交中的第2次。解决冲突后,您将提交自己,或
git rebase --continue
以重用现有的提交消息,以及您的第二次提交,“修复:将以解决冲突的新方式写入“防止堆栈溢出”。使用变基,没有额外的提交。