Git的空白困境(git whitespace woes)

2019-06-18 18:05发布

对空白吸冲突

空白已经结束了一个可怕的疼痛对我来说,同时使用Git。

git config apply.whitespace=strip

似乎highten你获得冲突的机会(因为你带不必要的空格,然后其他合作者看到剥离空格作为改变其提交?)

我已经尝试了一些其他配置为apply.whitespace过去,和其他的configs的一个可能解决这个,或许还有其他设置来处理的空白,我只是还没有碰到过,不过我还没有找到明确的方式来获得我想要的是。

我想静静地解决冲突的空白:

我再也不想对另一空白冲突。 如果另一提交者改变空格,或者我改变空格,然后必须合并对不住自己的冲突, 我真的不想知道。 如果有人通过改变空格的变化从K&R风格我的代码,以一个真实的布雷斯风格,我喜欢的git允许任何空白设置为经由具有可查看其冲突胜出。 我只是不足够的关心空格希望看到它发生冲突。

所以......是没有办法,我可以配置的git做什么办法?

如果这有什么差别,这是我的Git版本,和我目前的配置:

tchalvak:~/ninjawars$ git --version
git version 1.6.0.4

tchalvak:~/ninjawars$
git config --list
color.branch=auto
color.diff=auto
color.status=auto
color.branch.current=yellow reverse
color.branch.local=yellow
color.branch.remote=green
color.diff.meta=yellow bold
color.diff.frag=magenta bold
color.diff.old=red bold
color.diff.new=green bold
color.status.added=yellow
color.status.changed=green
color.status.untracked=cyan
gui.recentrepo=/home/tchalvak/zd/htdocs/cms
apply.whitespace=strip
user.name=****
user.email=****
alias.co=checkout
github.user=tchalvak
github.token=****
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.url=...@github.com:tchalvak/ninjawars.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master 

Answer 1:

Git1.6.0.4似乎有点老了,特别是如果你考虑到:

  • 在1.6.3.4 ,“ git apply --whitespace=fix ”未固定在一个不完整的行尾部的空白
  • 在1.6.3.2 ,“ whitespace被设置”属性,是为了检测已知与git的所有错误,但它告诉混帐忽略尾随回车符号。

你可以尝试用Git1.6.4.1,而非设置一个全局配置,设置你想要一个特殊的空白手柄,像这样的文件属性补丁描述 。

在给定的目录下创建一个.gitattributes文件。

* -whitespace

这将忽略任何“空白”的错误。

现在,不会阻止任何冲突,由于缺乏一致性,但可能是值得一试。


这个补丁是测试一下:

只有忽略空格误差t/tNNNN-*.sht/tNNNN子目录。
其他文件(如测试库),还是应该进行检查。

t/.gitattributes
t[0-9][0-9][0-9][0-9]-*.sh  -whitespace
t[0-9][0-9][0-9][0-9]/*     -whitespace

注(GIT 2.3.2+,Q1 2015, 提交0a80bc9 ,通过JUNIOÇ滨野又名gitster ) “ git apply --whitespace=fix ”是不再沉默:

git apply --whitespace=fix ”固定空格的错误在公共情境线,但这样做没有报告。

当进入的贴片在一个共同的上下文线具有空白错误(即,预期被发现,而不是由贴片改性的线),“ apply --whitespace=fix ”校正空白错误的行有,除了在由补丁更新的一条线空白错误。
然而,我们没有统计和报告,我们对这样的线路固定空白错误。



Answer 2:

如果你要打开那些你需要安排的一天,其中项目中的所有源代码,得到它的空白均匀剥离,通过运行一个脚本设置,或保存来自将执行上保存带编辑每一个文件。 然后,所有未来的提交将被设置进行监管,所以都应该很好地向前发展。



文章来源: git whitespace woes