Git在应该的时候没有显示合并冲突

时间:2016-10-17 23:17:53

标签: git github merge branching-and-merging git-pull

根据我对合并冲突的理解,当两个人更改了同一个文件和/或修改了该文件中的同一行时,就会发生合并冲突。所以,当我做了一个

git pull origin master

我预计会发生合并冲突,因为两个版本的相同行都不同,但看起来git决定覆盖我的本地文件。

要提供更多信息, 几天前我把我的版本推到了Github上。然后有人拉了它,用它工作,并把它推回github。另一个人修改过的两个文件对我很感兴趣。

第一个文件是配置文件,另一个人更改了密码。所以当我从github取出时,我本地版本的密码与github上的密码不同。但是,在我的终端,它说

Auto-merging <filename>

并且,它会覆盖我的文件,密码是由不同人设置的密码。

第二个感兴趣的文件是用模板引擎(PUG)编写的HTML文件。另一个人改变了该文件中的很多东西,比如添加了很多css类,删除了我使用过的一些类,添加了css文件的链接等等。但是当我拉它时,终端甚至没有提到它是自动合并它,只是在我的本地仓库中覆盖了整个文件并使用了Github中的那个。

对于这两个文件,我的问题是,这是否是使用git pull的预期行为,还是我做错了什么?

以下是我使用的命令。

git checkout -b "misc"
git pull origin master

另外,我尝试使用fetch然后手动合并/提交它,但是当我使用fetch时,什么也没发生。文件根本没有变化。

之前我曾经使用过git / github,但从未在使用分支和从github推/拉的团队中进行过广泛的工作。

1 个答案:

答案 0 :(得分:3)

检查存储库中的Ctrl + S,如果配置包含以下内容,git也会选择其他人的更改:

.git/config

如果属实,请删除[branch "master"] mergeoptions = --strategy-option theirs 行。

来自documentation

  

递归

     

...这是拉或时的默认合并策略   合并一个分支。递归策略可以采用以下选项:

     

我们的此选项会强制冲突的帅哥干净利落地自动解决   赞成我们的版本。来自其他树的更改没有   与我们方面的冲突反映在合并结果上。对于二进制文件   文件,全部内容都来自我们这边。

     

...

     

他们的这与我们的相反。