标签: merge-conflict-resolution

通过本地存在的非平凡合并提交重新进行上游更改

作为php-src的开发人员,我最近发现自己处于以下情况:

A   B   C
o---o---o         version1
         \
o---o-----o---o   master
x   y     D   E

o---o---o         upstream/master
x   y   z
Run Code Online (Sandbox Code Playgroud)

所以当我这样做时,我会git push --dry-run upstream master version1得到典型的:

! [rejected]        master -> master (fetch first)
Run Code Online (Sandbox Code Playgroud)

我的自然反应是重新绑定受影响的分支并保留合并提交:

git fetch upstream
git rebase -p upstream/master
Run Code Online (Sandbox Code Playgroud)

重要的是要注意原始的合并提交并不简单,因为版本分支和主服务器之间有很多变化; 它需要努力来解决这样的合并.

执行上述rebase操作会导致合并冲突,我必须再次解决它; 这几乎与我已经完成的工作完全相同.

有一个更好的方法吗?或者我忘记了一个明显的rebase选项?

git push git-rebase merge-conflict-resolution

6
推荐指数
1
解决办法
320
查看次数

故意制造合并冲突

我已经从 GitHub 中提取了文件。现在我需要创建一个合并冲突。

如何在 GitHub 上故意创建合并冲突?

merge-conflict-resolution

6
推荐指数
1
解决办法
3268
查看次数

如何解决git中文件重命名文件夹冲突?

我有以下问题:

我有两个分支 Branch1 和 Branch2 的一些共同提交 A。

  • Branch1 是公共分支(位于服务器上)
  • Branch2 是本地分支

在 Branch1 中我更改了文件 ( BAD_folder/somefile.txt)。更改已推送到服务器。在 Branch2 中,我重命名BAD_folderfolder并做了一些更改somefile.txt。我想将 Branch1 与 Branch2 合并,但文件中出现合并冲突BAD_folder/somefile.txt

我该如何解决这个问题?

git git-merge branching-and-merging merge-conflict-resolution

6
推荐指数
1
解决办法
7358
查看次数

在 gitcherry-pick 期间,撤消对单个文件的更改,恢复到我的版本

我正在cherry-pick对多个文件进行大型提交。存在一些冲突,但对于某些冲突的文件,我确信我不需要任何更改。我只想恢复该提交中应用于这些文件的所有更改 - 有点像 svn 中的“使用我的解决方案”,或者git checkout <filename>撤消应用于文件的更改(这在这里似乎不起作用)。

是否有命令可以执行此操作,而无需手动检查这些文件中的差异?

FFR,请随意添加使用他们的解决方案的操作。

git merge-conflict-resolution git-cherry-pick git-merge-conflict

6
推荐指数
0
解决办法
2226
查看次数

Github 认为合并后分支不同

我已经用这个 Github 问题把我的头撞在墙上,足以最终来到这里寻求帮助。我的repo有两个感兴趣的分支:master,这是当前实时发布的分支,以及alternate-testing,这正是它听起来的样子。我们的开发流程具有定期分支(和分叉)的功能分支alternate-testing,然后合并回alternate-testing. 最后,alternate-testing定期合并到master. 请注意,测试分支是看门人master- 除了master通过之外什么都不会进入alternate-testing

完全清楚,这不是这样的情况:

1 -- 2 -- 3 -- 4 -- 5 -- 6 -- 7 -- 8 [master]
       \                      /
        A -- B -- C -- D -- E [alternate-testing]
Run Code Online (Sandbox Code Playgroud)

就像在这个问题中一样,因为 master本身永远不会改变。更相关的图表是:

1 -- 2 ---------------------- * -- 8 [master]
       \                      /
        A -- B -- C -- D -- E …
Run Code Online (Sandbox Code Playgroud)

git version-control github merge-conflict-resolution git-merge-conflict

6
推荐指数
1
解决办法
1570
查看次数

如何通过保留双方的所有添加来解决 git 冲突?

我一直遇到以下问题,我想知道是否有使用现有 git 命令的简单解决方案,或者我是否需要编写自定义合并驱动程序

这是一个演示我的问题的示例:假设master我的 repo的分支具有以下文件:

$ cat animal.hpp 
#include <string>

class Animal
{
public:
  virtual std::string say() const = 0;
};
Run Code Online (Sandbox Code Playgroud)

我创建一个名为的新分支mybranch并进行以下更改:

diff --git a/animal.hpp b/animal.hpp
index e27c4bf..3bb691a 100644
--- a/animal.hpp
+++ b/animal.hpp
@@ -5,3 +5,13 @@ class Animal
 public:
   virtual std::string say() const = 0;
 };
+
+class Dog : public Animal
+{
+public:
+  virtual std::string
+  say() const override
+  {
+    return "woof";
+  }
+};
Run Code Online (Sandbox Code Playgroud)

与此同时,其他人添加了以下非常相似的更改master

diff …
Run Code Online (Sandbox Code Playgroud)

git git-merge git-rebase merge-conflict-resolution git-merge-conflict

6
推荐指数
2
解决办法
4188
查看次数

如何解决gerrit中已批准审查中的合并冲突?

我对 gerrit 进行了更改,该更改经过代码审查并在 7 次修订后获得批准。但是,现在它无法合并,并且由于合并冲突,尝试在 gerrit 网站中重新设置基准不起作用。如何解决此合并冲突并合并相同的已批准更改而不是创建新更改。(从克隆回购的完整步骤将不胜感激。)

git-merge gerrit merge-conflict-resolution

6
推荐指数
1
解决办法
1万
查看次数

如何在众多文件中解决相同的合并冲突?

假设我在200个文件中有这个冲突:

<<<<<<< HEAD
/*  Version         1.0.0       */
/*  Date            2017-05-30  */
=======
/*  Version         1.0.1       */
/*  Date            2018-11-30  */
>>>>>>> release/1.0.1
Run Code Online (Sandbox Code Playgroud)

我确定我想要1.0.1所有文件中的版本.但仅仅使用--theirs所有文件是不可行的,因为我还有其他修改,应该保留--ours.

有没有办法解决这个冲突,--theirs然后手动解决其他冲突(只在一些文件中)?

git merge-conflict-resolution

6
推荐指数
1
解决办法
81
查看次数

Git 会记录过去的合并冲突吗?

我想查看存储库历史记录,看看过去发生了哪些类型的合并冲突。

我试过使用,git log --merges但这似乎显示成功的合并。

git merge merge-conflict-resolution

6
推荐指数
1
解决办法
1558
查看次数

“git revert”中的“他们”和“我们”是谁?

在 a 期间,我无法理解这些冲突中的us人和them是谁git revert,所以我真的不知道这里发生了什么:

git revert some_commit_hash
Run Code Online (Sandbox Code Playgroud)

然后git status显示如下冲突:

deleted by them: path/to/file1.h
both modified:   path/to/file2.h
deleted by them: path/to/file1.cpp
deleted by them: path/to/test_file1.cpp
added by us:     path/to/file3.h
deleted by them: path/to/file4.h
added by us:     path/to/file5.h
Run Code Online (Sandbox Code Playgroud)

“我们”是谁?“他们”是谁?

更新:请注意,我正在还原的提交是一个非常大的合并提交。


不重复:

  1. 因为它没有说明谁是usthemGIT:“被我们删除”冲突有多危险?
  2. 因为它涵盖mergeandrebase但 NOT revert,并且 git 经常使用相同的术语来表示相反的事情,具体取决于操作:根据 Git,谁是“我们”,谁是“他们”?
  3. 因为它没有提到“我们”和“他们” - Git - 还原还原,冲突

git git-revert merge-conflict-resolution

6
推荐指数
2
解决办法
260
查看次数