Git merge conflict resolution(Git合并冲突解决方案)显示了我没有看到的阶段性更改';不行

Git merge conflict resolution(Git合并冲突解决方案)显示了我没有看到的阶段性更改';不行,git,Git,假设以下场景 我克隆了一个中央git回购和结帐主分支 我在本地回购和提交中对主分支做了一些更改 其他人在主分支中进行更改,提交并推动中央回购 我试图将中央回购的主分支拉到我的分支 发生合并冲突 然后,如果我发出git status命令,我会看到很多我没有做的更改(我认为是其他人在步骤3中做的)会自动转移到下一个合并提交中,我将在解决冲突后执行下一个合并提交 我的问题是,在冲突解决和提交之后,上面提到的那些暂存但不是我做的更改是否会像我做的一样转到repo?如果您没有禁用git配置中的某些设置,通

假设以下场景

  • 我克隆了一个中央git回购和结帐主分支
  • 我在本地回购和提交中对主分支做了一些更改
  • 其他人在主分支中进行更改,提交并推动中央回购
  • 我试图将中央回购的主分支拉到我的分支
  • 发生合并冲突
  • 然后,如果我发出
    git status
    命令,我会看到很多我没有做的更改(我认为是其他人在步骤3中做的)会自动转移到下一个合并提交中,我将在解决冲突后执行下一个合并提交


    我的问题是,在冲突解决和提交之后,上面提到的那些暂存但不是我做的更改是否会像我做的一样转到repo?

    如果您没有禁用git配置中的某些设置,通常会发生这种情况

    autocrlf选项启用此选项后,当您拖动某个内容时,您的行尾将被更改(如果它们不同),并且您的文件将被修改

    autocrlf = false
    # or with this
    git config --global core.autocrlf true
    
    下一个是filemode,这里是一样的

    filemode = false
    
    通常这就是问题所在。您可以在git配置文件中设置这些选项

    .git/config
    

    每次进行合并时,都会创建一个提交。执行pull是有效的获取和合并操作(除非您是快进)

    当合并成功且没有任何冲突时,您将看到直接提交(假定您不是快进)。但是当coflict发生时,git会使coflict中的文件处于冲突状态。成功合并的所有其他文件都放置在暂存区域中。因此,当您完成冲突时,可以一起提交所有文件


    此提交被标记为合并提交,将来阅读历史记录的其他人应确定此提交是由合并引起的,而不是您所做的更改。

    但我看到的已暂存的更改看起来不像行尾更改。如果它们是行尾更改,我会看到两条类似的行,一条带-mark,另一条带+mark(表示删除了具有特定行尾的行,并添加了具有不同行尾的同一行)。我看到的大多数更改都是插入。那么您的文件模式更改了吗?你能发布你的配置设置吗?但如果没有您的回购协议:对于
    filemode
    ,DI有
    false
    。这是本地存储库配置。[core]repositoryformatversion=0 filemode=false bare=false logallrefupdates=true symlinks=false ignorecase=true hideDotFiles=dotGitOnly[remote“origin”]url=xxxxxxx fetch=+refs/heads/*:refs/remotes/origin/*[branch“master”]remote=origin merge=refs/heads/master[gui]wmstate=zoomed geometry=887x427+2197+-11 799 192这就是为什么在多个开发人员的情况下,人们几乎总是使用单独的分支,并且只在
    master
    上进行合并是非常明智的。实际上,我在解决冲突后进行了合并提交,然后检查了我所看到的已暂存文件的git Bull。git责备表明那些自动进行的更改不是我做的!那么,这回答了你的问题吗?是的。但仍然有点困惑为什么会发生这种情况,因为你没有做这些改变,所以说它们不是你的改变是正确的,正如git所说的那样。git允许我们以事件发生的方式跟踪时间线。合并提交仅用于描述两个分支在此提交中合并。这里是本地和远程分支。