是否可以git merge忽略行尾差异?
也许我问的是错误的问题......但是:
我试过了,config.crlf input但事情变得有点乱,失控,特别是当我在事后应用它时.
首先,在应用此选项之前,在事实之后应用此配置似乎不会影响已提交到存储库的文件.另一件事是突然所有提交现在导致许多关于CRLF被转换为LF的恼人警告消息.
说实话,我真的不在乎使用什么行结尾,我个人更喜欢Unix风格\n,但无论如何.我所关心的只是为了git merge变得更聪明,而忽略了行尾的差异.
有时我有两个相同的文件,但是git会将它们标记为冲突(并且冲突是整个文件),因为它们使用不同的行结束字符.
我发现git diff接受一个--ignore-space-at-eol选项,是否也可以git merge使用此选项?
在使用git时,空白对我来说是一种可怕的痛苦.
git config apply.whitespace=strip
Run Code Online (Sandbox Code Playgroud)
似乎会增加你获得冲突的机会(当你删除不需要的空格,然后其他合作者将剥离的空白视为对其提交的更改?)
我过去曾尝试过其他一些配置apply.whitespace,也许其他配置中的一个可以解决这个问题,或者可能还有其他设置来处理我刚才没有遇到的空白,但我还没有找到明确的如何到达我想要的地方.
我从不想在空白上再发生冲突.如果另一个提交者改变了空格,或者我改变了空格然后必须合并我自己的冲突,我真的不想知道它.如果有人通过更改空格将我的代码从K&R样式更改为One True Brace样式,我更喜欢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
Run Code Online (Sandbox Code Playgroud) 我正在使用Git来跟踪一些matlab代码.最好的玩具示例说明了这个问题.到目前为止,该项目看起来像这样.
C
/
A--
\
B
Run Code Online (Sandbox Code Playgroud)
A的内容是 x=5
我们创建提交C,其中行被更改为 x=6
然后我们进行提交B,其中我们的内容如下所示
if flag==1
x=5
end
Run Code Online (Sandbox Code Playgroud)
如果我们尝试合并项目的目标看起来像
C
/ \
A-- D
\ /
B
Run Code Online (Sandbox Code Playgroud)
合并结果在D中,我们会发生冲突,因为主线在两者中都有变化(在B中添加缩进,在C中变为6).
是否有最佳实践方法来集成来自一个分支的缩进更改,以及来自另一个分支的内容更改,以获得合并结果?
我在/sf/answers/368373141/上读过一个策略,虽然这样可以避免冲突,但它会丢弃缩进以支持内容更改(这是一个改进,但仍然使为了更难阅读代码).
我想我可以在编写代码时吮吸它而不是更改缩进.这使得它的可读性降低,但在matlab中并不是一件大事.然而,在python中,缩进真的很重要,那么python人们如何处理呢?如果有大块代码我们后来改变为控制结构内部,那么这会变得更加丑陋,因此差异触及许多行并使合并冲突成为一个巨大的麻烦.
是否有合并策略分别处理间距更改和内容更改,然后集成它们?我想要合并的结果
if flag==1
x=6
end
Run Code Online (Sandbox Code Playgroud) 我目前正处于一个非常复杂的git合并中,我有很多冲突.冲突是关于两个Ada源文件.
我想进行合并,忽略空格更改和大小写更改(因为Ada语言不区分大小写).你知道是否有办法告诉git在合并之前忽略某些变化?
我的解决方案目前是在合并之前在两个分支上运行GNAT漂亮打印,但如果git中包含一个通用解决方案,那将对我有很大帮助.
在git合并期间解决冲突时,如何忽略NetBeans中的前导和尾随空格.
在"选项">"其他">"差异"下,可以将diff工具设置为忽略引导尾随空格,但这不会影响NetBeans合并工具.
git支持git merge -Xignore-all-space.是否有在NetBeans中传递此标志的方法?
git ×5
merge ×4
whitespace ×3
conflict ×1
eol ×1
git-svn ×1
ignore ×1
indentation ×1
line-endings ×1
matlab ×1
netbeans ×1
python ×1
settings ×1