Jay*_*ine 41 git standards removing-whitespace
我们有一个庞大而古老的代码库,需要大量的清理工作.我们一直都有编码标准,每个人都一直试图遵循这些标准,但是它们没有得到强制执行,因此随着时间的推移,很多违规行为都已进入.其中许多只是空白问题,比如使用制表符而不是空格,或者是空格.不应该是任何或缺少的空间.我们将开始积极执行我们的编码标准,以确保更多的违规行为不会蔓延,但很难以自动方式仅对更改强制执行,因此清理这些旧文件会很不错.
有些工具可以自动修复这些问题,但是如果我这样做,那么责备就会把我看作是这些线路的拥有者,而实际上我可能从来没有见过它们.我知道有一个设置可以指责忽略空白变化,但我不能让每个人都以同样的方式使用责任,包括其他可视化工具和gitstats之类的东西.在一个理想的世界中,有一些方法可以重写历史,看起来像是从未引入过违规,而没有掩盖谁介绍了实际的代码,但我找不到类似的东西.
小智 36
如果您尝试使用blame获取根本原因问题,请不要忘记使用该-w标志忽略所有空格或缩进更改.因此,您将获得代码的最后一次真正更改,而不仅仅是缩进,或删除尾随空格.
git blame -w app/to/file.rb
Run Code Online (Sandbox Code Playgroud)
或者你可以使用,git slap命令..
git config alias.slap "blame -w";
git slap app/path/to/file.rb
Run Code Online (Sandbox Code Playgroud)
结果相同:D
wno*_*ise 20
在一个理想的世界中,有一些方法可以重写历史,看起来从未引入过违规行为
git filter-branch 确切地说.
http://git-scm.com/docs/git-filter-branch
这与所有历史重写命令都有相同的问题,因为它基本上使所有克隆的存储库无效.
基于马里奥的回答,我建议git shame作为一个全球性的git-alias:
git config --global alias.shame 'blame -w -M'
Run Code Online (Sandbox Code Playgroud)
...并使用它而不是git-blame:
git shame path/to/file
Run Code Online (Sandbox Code Playgroud)
解释:
- -w忽略空格更改,所以不要责怪重新缩进代码的人
- -M检测已移动或复制的行,并指责原作者
| 归档时间: |
|
| 查看次数: |
9117 次 |
| 最近记录: |