我希望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 更改提交日期等。这些都不是特别麻烦,但如果一个快速的工具或更简单的工作流程能更干净地做到这一点,那么我很想知道它。
1 回答
湖上湖
TA贡献2003条经验 获得超2个赞
但是如果一个快速的工具或更简单的工作流程能更干净地做到这一点,那么我很想知道它。
正如Joseph K. Strauss在评论中提到的,git filter-branch
应该足够了,再加上go fmt
使用三点符号:
git filter-branch --tree-filter 'go fmt ...'
您可以在“ git filter-branch
-放弃对一系列提交中的一组文件的更改”中阅读更多关于过滤器分支的信息。
该命令将针对所有本地分支运行,并将更改历史记录(因为将为每个修改的提交生成新的 SHA1)。可能需要
Agit push --force
将新历史记录发布到其上游存储库:警告其他合作者,让他们重置他们的本地存储库。
- 1 回答
- 0 关注
- 110 浏览
添加回答
举报
0/150
提交
取消