当 git merge 没有创建已在 master 分支中删除的文件时我该怎么办

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

在 git merge 上遇到问题。这就是我所做的。

  1. 创建了新的分支壮举。
  2. 对 feat 和 master 做出了多项承诺。
  3. 不小心合并了 master 上的 feat 并推送了。
  4. 做了(恢复-m 2)并推送。
  5. 对 feat 和 master 做出了多项承诺。
  6. 有意合并master上的壮举以发布新功能。

当我做6时,许多文件不是通过合并创建的。 似乎恢复后已更改的文件是通过合并创建的。 但我猜想自恢复以来未修改的文件不会通过合并创建。 在这种情况下我可以使用任何 git 命令吗?

这是工作的一年。我无法一一添加或只是覆盖文件而不检查冲突。

git merge
1个回答
0
投票

这是一个经典错误。

发生的情况是,第一次提交期间合并的所有提交现在都被视为

master
历史记录的一部分,这意味着它们不会在第二次合并中被考虑。

您可以通过多种方式修复它。

恢复恢复

这将导致一次提交,其中包含最初由第一次恢复删除的所有更改。

通过强制变基复制分支历史记录

如果您查看

feat
的日志并找到从
master
创建它的点,您基本上可以使用
git rebase -f <commit-id>
复制分支,其中 commit-id 应该是第一次提交之前的提交,这是
 的一部分feat

图形化的 git 历史记录工具对于查找正确的提交非常有用。
尝试命令

gitk --all &
(它包含在大多数 git 安装中)

由于复制的历史记录不是

master
历史记录的一部分,合并应该可以顺利进行。 (或者您可能必须先恢复第二次合并,以避免
feat
的原始版本与新版本之间发生冲突。)

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