Git 合并不会从源分支获取所有文件

问题描述 投票:0回答:1

我有两个分支,“master”和“develop”。

其他分支已合并到“master”中。

现在,当我将“master”合并到“develop”中时,“master”中的一些文件不会转移到“develop”中。

我该如何解决这个问题?

当我将 master 合并到开发中时,它给我带来了冲突:

enter image description here

一旦解决,主控中的某些文件(不是屏幕中的文件)将不会带回开发。

在 master 中,有些提交涉及创建/修改未合并到开发中的文件。

没有删除这些文件的提交

如何解决这个问题?

谢谢你


更新

6月,一个分支被合并到Develop中,然后立即恢复。

这个分支是从master开始的。难道我所指的文件没有因为该恢复而被带入开发中?

enter image description here

合并: enter image description here

回复: enter image description here

现在,当我将master合并到develop中时,该文件存在于Master中,但合并不携带AccessTokenController.php

git merge git-merge git-merge-conflict
1个回答
0
投票

Develop删除了AccessTokenController.php,因此不会通过合并复活。 Git 不明白删除是由于恢复所致。

如果没有完整的历史,我无法确定,

git log --graph --decorate --oneline --stat develop master
,但这是似乎合理的。

将修复内存限制合并到开发中,然后恢复您的存储库后,看起来像这样。

R [develop] << deletes AccessTokenController.php
|
M 
|\
3 \
|  9 [fix memory limit]
2  |
|  8
1  |  C [master]
\   \ |
 \   \|
  \   B << adds AccessTokenController.php
   \  |
    \ |
     \|
      A
     ...

M 是合并。 R是回归。 B 添加了 AccessTokenController.php,它是在 master after 开发分支上完成的。

M 将 AccessTokenController.php 引入开发,但 R 将其删除。请注意,在合并之前,B 不是开发历史的一部分,现在是了。

您将master合并到develop中。

$ git switch develop
$ git merge master

M2 [develop]
|\
| \
|  \
|   \
|    \
R     | << rm AccessTokenController.php
|     |
M     |
|\    |
3 \   |
|  9  | [fix memory limit]
2  |  |
|  8  |
1  |  C [master]
\   \ |
 \   \|
  \   B << adds AccessTokenController.php
   \  |
    \ |
     \|
      A
     ...

develop看到它删除了AccessTokenController.php,因此不允许合并复活它。 AccessTokenController.php 自合并以来没有更改,因此不会产生冲突。


如果合并失败,最好使用

git reset
完全撤消合并提交,而不是恢复。
git-reset
允许您随意移动树枝。

让我们回到第一次合并之后。

M [develop]
|\
3 \
|  9 [fix memory limit]
2  |
|  8
1  |  C [master]
\   \ |
 \   \|
  \   B
   \  |
    \ |
     \|
      A
     ...

不要恢复,而是撤消合并。将开发移回提交 3。

$ git switch develop
$ git reset --hard 3

M 
|\
3 \  [develop]
|  9 [fix memory limit]
2  |
|  8
1  |  C [master]
\   \ |
 \   \|
  \   B
   \  |
    \ |
     \|
      A
     ...

现在就好像合并从未发生过一样。虽然合并提交仍然存在,但没有任何内容引用它;它最终会被垃圾收集。

© www.soinside.com 2019 - 2024. All rights reserved.