使用git rebase -x,您可以调用git add --renormalize .脚本,以确保应用本地Git配置。 Guildenstern还在git test fix的评论中指出, git test fix子命令可以运行诸如formatter或linter之类的命令,并将其产生的更改应用于每个提供的提交。 举例来说:git test fix --exec 'cargo fmt --all'。
防止合并冲突
手动应用格式化程序或linter更改可能很困难(例如使用git rebase --exec),因为它必须重新确定固定提交的后代的基础。 这通常会导致合并冲突,这些冲突将通过格式化或linting下一次提交来解决。(作为一种变通方法,有些人尝试以反向拓扑顺序修复提交,以最大限度地减少合并冲突的机会。 git test fix永远不会产生合并冲突,因为它通过直接替换树OID来独立修复每个提交,并保持后代提交不变。(你可以手动调用git amend并使用--reparent选项来做同样的事情) 参见git test fixin action here。
1条答案
按热度按时间j8ag8udp1#
我提到:
git add --renormalize .
,这应该有助于应用任何.gitattributes
/git config
更改。git ls-files --eol
,有助于列出文件及其EOL,以进行诊断。使用
git rebase -x
,您可以调用git add --renormalize .
脚本,以确保应用本地Git配置。Guildenstern还在
git test fix
的评论中指出,git test fix
子命令可以运行诸如formatter或linter之类的命令,并将其产生的更改应用于每个提供的提交。举例来说:
git test fix --exec 'cargo fmt --all'
。防止合并冲突
手动应用格式化程序或linter更改可能很困难(例如使用
git rebase --exec
),因为它必须重新确定固定提交的后代的基础。这通常会导致合并冲突,这些冲突将通过格式化或linting下一次提交来解决。(作为一种变通方法,有些人尝试以反向拓扑顺序修复提交,以最大限度地减少合并冲突的机会。
git test fix
永远不会产生合并冲突,因为它通过直接替换树OID来独立修复每个提交,并保持后代提交不变。(你可以手动调用git amend并使用--reparent
选项来做同样的事情)参见
git test fix
in action here。