标签: git-merge-conflict

查看来自个别父母的git diff

说,我遇到了合并冲突,我设法修复它,但没有标记为已解决(即我还没有完成git add冲突的文件).此时,我可以这样做,git diff并且我将以组合的diff格式显示结果文件与每个父文件的不同之处.

到目前为止都很好.现在我想分别检查结果文件与单个父文件的区别.当然,对于涉及2个父母的合并冲突(樱桃挑选,rebase等),我可以使用git diff --ours或者git diff --theirs,但是我如何将其扩展到更多的父母?

换句话说,如果我从3个父母那里得到冲突,是否可以查看每个父母的个别差异?

而且,我发现--ours并且--theirs非常偶然; 我无法在diff上下文中找到他们的用法.

git git-merge-conflict

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

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

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

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

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

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

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

如何在bitbucket上合并分支到master

我有以下问题。

  1. 我想branch从我的master 仓库创建一个。我可以使用bitbucket dashboardTerminal创建分支。如果使用Terminal,则创建的分支不会显示在。中,但是Overview如果Create a branch从仪表板使用并创建,则显示该分支,但其中不包含任何内容,并要求我使用git fetch && git checkout branchname命令进行签出。
    哪一种是创建分支的正确方法?

  2. 然后,我的下一个问题是:认为我master更改,并且分支也已更改。所以我怎样才能将分支更改合并到master。有哪些步骤可以做到这一点。(最好的方法是使用命令或位桶仪表板合并)

  3. 最后,如果我们键入git branch,它将显示masterother branches。所以我该如何从终端更改分支。

branch bitbucket git-merge git-merge-conflict

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

Git + Windows + Visual Studio合并由分支之间的行结束问题引起的冲突

我正在努力正确地合并到分支机构.分支似乎有行结束问题,因为当我打开Visual Studio中的冲突窗口时,它显示0个冲突和0个不同文件之间的差异.

我在两个分支上添加了一个gitattributes文件,它在两个存储库中查找并执行了存储库刷新.

当我刷新两个存储库时,没有提交更改,即使指令指出将提交更改(实际上更改来自EOL转换).

这是我的gitattributes

# Auto detect text files and perform LF normalization
* text=auto

# Custom for Visual Studio
*.cs     diff=csharp

# Standard to msysgit
*.doc    diff=astextplain
*.DOC    diff=astextplain
*.docx   diff=astextplain
*.DOCX   diff=astextplain
*.dot    diff=astextplain
*.DOT    diff=astextplain
*.pdf    diff=astextplain
*.PDF    diff=astextplain
*.rtf    diff=astextplain
*.RTF    diff=astextplain
Run Code Online (Sandbox Code Playgroud)

我也检查过,我的全局core.autocrlf等于true(因为我们所有的开发人员都在Windows上使用Visual Studio)

问题是,当我继续做以上操作以期在两个分支中修复和规范化这些分支时,我最终会遇到比以前更多的冲突 - 所有这些都是由于行结束:

在此输入图像描述

.git/config文件(不包括分支引用)

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
    hideDotFiles = …
Run Code Online (Sandbox Code Playgroud)

git github visual-studio git-merge-conflict

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

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
查看次数

IntelliJ IDEA - 如何从命令行触发 Git 冲突解决

我主要通过命令行使用 git,但为了解决冲突,我更喜欢 IDE。特别是 IntelliJ IDEA。

目前我尝试重新设置基准,并看到冲突。所以我需要进入IDEA并点击“VCS -> Git ->解决冲突”。然后返回控制台并运行git rebase --continue

我想我可以配置git调用一个程序来处理冲突。

有没有办法从命令行调用 IDEA 的冲突解决? 就像是idea --git-resolve-conflicts $(PWD)

也许在安装正确的插件后?这就是 IDEA 给我的帮助:

Usage:
  /usr/local/bin/idea -h | -? | --help
  /usr/local/bin/idea [project_dir]
 /usr/local/bin/idea [-l|--line line] [project_dir|--temp-project] file[:line]
  /usr/local/bin/idea diff <left> <right>
  /usr/local/bin/idea merge <local> <remote> [base] <merged>
Run Code Online (Sandbox Code Playgroud)

git command-line intellij-idea git-merge-conflict

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

冲突解决后如何将文件移回冲突状态?

我有一个真正的冲突解决方案集,我想我会去尝试它,如果我失败了,那么我应该能够将文件恢复到它的冲突状态。但是,我似乎找不到回去的方法。git 仍处于 MERGING 状态,那么如何备份单个文件并重新解析?

git git-merge-conflict

5
推荐指数
1
解决办法
589
查看次数

为什么 git 不给我任何冲突?

我发现了一个奇怪的问题。我正在测试一个 git repo 并在这种情况下发现。

我创建了一个简单的 git repo 并添加了一个包含以下内容的文本文件。

Hello Git..!

First Line
Run Code Online (Sandbox Code Playgroud)

作为初始提交提交。

然后我从该提交创建了一个名为“abc”的分支,并将文件的内容更改为下面的内容。

(abc) -> 分支

Hello Git..!

First Line
Second Line
Run Code Online (Sandbox Code Playgroud)

坚定的。然后我检查回我的主分支并将文件内容更改为下面。

(主)-> 分支

Hi Git..!

First Line
Run Code Online (Sandbox Code Playgroud)

坚定的。然后我尝试将“abc”分支合并到“master”分支。我以为这会给我带来冲突,但它已通过递归成功合并到下面。

Hi Git..!

First Line
Second Line
Run Code Online (Sandbox Code Playgroud)

什么没有显示任何冲突?如果像下面这样之间没有空行,我有时会尝试几次,

Hello Git...!
First Line
Run Code Online (Sandbox Code Playgroud)

那么它表明存在冲突。我无法理解这一点。有人请帮助我理解这一点。

我尽可能多地搜索,但我无法找到问题或答案来解决我的问题。

我已将示例存储库上传到 GitHub。如果有人克隆它并尝试合并,它可以被复制。

https://github.com/Ranjith-Suranga/test-repo

有没有办法强制GIT显示冲突?我知道这是一个奇怪的问题,没有人需要发生冲突。但我也不喜欢这样的事情发生。试想一下,这发生在我的真实代码中。

更新


由于大多数评论和答案都在暗示不能有任何这样的冲突。我不得不更新这个答案。

好的,让我们在删除第二个空行后再次执行上述所有步骤。

开始了,

  1. 我创建了一个简单的 git repo 并添加了一个包含以下内容的文本文件。这次第一行和第二行之间没有空行。
Hello Git..!
First Line
Run Code Online (Sandbox Code Playgroud)

作为初始提交提交。

  1. 然后我从该提交创建了另一个名为“abc”的分支,并将文件的内容更改为下面的内容。(再次删除空行)

(abc) -> 分支

Hello Git..!
First Line
Second Line
Run Code Online (Sandbox Code Playgroud)

坚定的。

  1. 然后我检查回我的主分支并将文件内容更改为下面。

(主)-> 分支

Hi Git..!
First …
Run Code Online (Sandbox Code Playgroud)

git git-merge-conflict

5
推荐指数
1
解决办法
1082
查看次数

在 Git 中,合并一些文件后,我想接受合并中剩下的所有“他们的”。我怎么做?

合并一些文件后,如何接受所​​有尚未合并的文件(我们的或他们的)?

我试过

git checkout --theirs Project\folder\*.json
Run Code Online (Sandbox Code Playgroud)

但这似乎并没有起到任何作用。


这与现有问题不同,因为我只想接受剩余的文件。并非所有文件(这通常是提出的问题)。

git git-merge-conflict

5
推荐指数
1
解决办法
513
查看次数