我想知道当发生合并冲突时,哪些文件git无法自动合并。我找到了这个答案: 如何在 git 合并提交中列出冲突的文件(父项双方都有更改的文件(?
但是刚刚测试了git show --name-status
,它在我的情况下不起作用,我知道冲突的文件没有出现在列表中......
或者,我想知道在以某种方式进行合并提交时是否可以强制将这些文件包含在 git 提交消息中?或者至少要更改默认的 git 行为,以便默认情况下不会注释掉文件?(显然,使用存储库为我团队中的每个人进行此更改(
是的,但它涉及 Git 钩子,这很麻烦(见下文(。在极少数情况下,您需要此类信息,您可以重新创建冲突。
假设您正在查看此存储库。
A - B - F - G -- M - N - O [master]
/
C - D - E
你想知道M.结帐G和合并E的冲突。
git checkout G
git merge E
任何冲突都将重现。
我想知道发生合并冲突时哪些文件 git 无法自动合并。
Git 不会记录合并提交中哪些文件发生了冲突。此信息是临时的。
或者,我想知道在以某种方式进行合并提交时是否可以强制将这些文件包含在 git 提交消息中?或者至少要更改默认的 git 行为,以便默认情况下不会注释掉文件?
是的。然而。。。
(使用存储库为团队中的每个人进行此更改 显然(
不是自动的。
您可以使用准备提交消息挂钩来编辑提交消息。第一个参数是原始文件,第二个参数是源(您正在寻找merge
(。您可以编写一个钩子来取消对现有冲突行的注释,或者使用冲突文件列表编写自己的文件。
但是,Git 钩子不与存储库一起分发。团队中的每个人都必须安装它们并使它们保持最新状态。
提交消息不能在服务器端更改(即推送后(,因为提交消息是提交的一部分。更改消息将更改提交 ID。