任何工具在单独运行 go fmt 时在 Git 中重新设置分支?

我希望X使用源代码格式化工具(如go fmt或indent.


我希望工作流程大致包括创建一个新分支master并迭代以下内容并$_覆盖 中的提交X:


git cherry-pick $_

go fmt ...

git commit -a --amend

或者甚至


git cherry-pick -n $_

go fmt ...

git cherry-pick --continue

不过,我不会期望-n和那样--continue一起玩。此外,一个自然应该做一个go fmt承诺X和go diff X new时完成。


但是,此过程中有许多步骤可能会出错,例如-a试图更改原始提交中未更改的文件、go fmt混淆 Git 的修补程序、Git 更改提交日期等。


这些都不是特别麻烦,但如果一个快速的工具或更简单的工作流程能更干净地做到这一点,那么我很想知道它。


慕田峪7331174
浏览 111回答 1
1回答

湖上湖

但是如果一个快速的工具或更简单的工作流程能更干净地做到这一点,那么我很想知道它。正如Joseph K. Strauss在评论中提到的,git filter-branch应该足够了,再加上go fmt使用三点符号:git filter-branch --tree-filter 'go fmt ...'您可以在“ git filter-branch-放弃对一系列提交中的一组文件的更改”中阅读更多关于过滤器分支的信息。该命令将针对所有本地分支运行,并将更改历史记录(因为将为每个修改的提交生成新的 SHA1)。可能需要Agit push --force将新历史记录发布到其上游存储库:警告其他合作者,让他们重置他们的本地存储库。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go