将主分支合并到开发分支的Git merge操作正在进行覆盖而非合并。

5
我有一个问题,我的主分支更改完全覆盖了我在开发分支中的更改,而不是合并它们。我正在为一个Web应用程序维护一个主分支和一个开发分支。我目前正在开发需要几周时间才能实现的功能,但与此同时,其他开发人员正在不断向主分支添加内容。让我以一个文件为例,functions.php。我正在dev分支的functions.php文件中进行许多行的更改。偶尔我会使用git checkout master切换到主分支,并使用git pull origin master从在线拉取。这将使团队更改与我本地的dev保持一致。现在,我想将这些更改引入到我的dev分支的functions.php文件中,同时保留我迄今为止所做的工作。因此,我检出dev分支并运行git merge master。问题是,master分支中的函数文件完全覆盖了dev分支中的函数文件。为什么?总结我的工作流程:
git checkout master # Move to master branch
git pull origin master # Get down local changes, all along I have been working in dev and making dev progress
git checkout dev # move to dev branch
git merge master # attempt to align team changes to my dev branch

我的文件被覆盖了,而不是被合并。

谢谢, 西蒙


你是否在每次结账前都提交到主分支? - Moses
1
提交主分支还是开发分支?两者都已经提交了。看起来没有什么区别。 - SimonDowdles
1个回答

2

1
哦,我的配置中没有notes.mergeStrategy这样的设置。这是我的配置输出:[core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true ignorecase = true precomposeunicode = true [remote "bitbucket"] url = https://xxx@bitbucket.org/xxx/xxx.git fetch = +refs/heads/*:refs/remotes/bitbucket/* [branch "master"] remote = bitbucket merge = refs/heads/master 我需要添加并使用notes.mergeStrategy,然后将其设置为mine吗? - SimonDowdles
3
这是一个很常见的情况,肯定不需要复杂的解决方案。我想超过50%的人需要从主干分支切换到开发分支,以尽可能保持更多变更的对齐。 - SimonDowdles
2
@SimonDowdles 你找到解决问题的方法了吗? - kyw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接