相关疑难解决方法(0)

git-merge是否可以忽略行尾差异?

是否可以git merge忽略行尾差异?

也许我问的是错误的问题......但是:

我试过了,config.crlf input但事情变得有点乱,失控,特别是当我在事后应用它时.

首先,在应用此选项之前,在事实之后应用此配置似乎不会影响已提交到存储库的文件.另一件事是突然所有提交现在导致许多关于CRLF被转换为LF的恼人警告消息.

说实话,我真的不在乎使用什么行结尾,我个人更喜欢Unix风格\n,但无论如何.我所关心的只是为了git merge变得更聪明,而忽略了行尾的差异.

有时我有两个相同的文件,但是git会将它们标记为冲突(并且冲突是整个文件),因为它们使用不同的行结束字符.

更新:

我发现git diff接受一个--ignore-space-at-eol选项,是否也可以git merge使用此选项?

git merge git-svn line-endings eol

146
推荐指数
4
解决办法
7万
查看次数

git whitespace woes

空白的冲突很糟糕

在使用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 settings whitespace

34
推荐指数
2
解决办法
2万
查看次数

合并期间在Git中集成缩进和内容更改:最佳实践?

我正在使用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)

python git merge matlab indentation

10
推荐指数
1
解决办法
1059
查看次数

git merge:过滤文件以避免愚蠢的冲突(如空格或大小写更改)

我目前正处于一个非常复杂的git合并中,我有很多冲突.冲突是关于两个Ada源文件.

我想进行合并,忽略空格更改和大小写更改(因为Ada语言不区分大小写).你知道是否有办法告诉git在合并之前忽略某些变化?

我的解决方案目前是在合并之前在两个分支上运行GNAT漂亮打印,但如果git中包含一个通用解决方案,那将对我有很大帮助.

git merge whitespace conflict case-insensitive

7
推荐指数
1
解决办法
1604
查看次数

如何忽略NetBeans合并工具中的空格

在git合并期间解决冲突时,如何忽略NetBeans中的前导和尾随空格.

在"选项">"其他">"差异"下,可以将diff工具设置为忽略引导尾随空格,但这不会影响NetBeans合并工具.

git支持git merge -Xignore-all-space.是否有在NetBeans中传递此标志的方法?

Git合并并修复带有两个分支的混合空格和制表符

git merge whitespace netbeans ignore

5
推荐指数
1
解决办法
787
查看次数