问题标签 [git-merge-conflict]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
798 浏览

git - 谁能帮我理解 Meld diff 工具中的三个窗口

使用Meld时我看到三个垂直边

在左边Test.txt.LOCAL.10512.txt

在中间Test.txt

在右边Test.txt.REMOTE.10512.txt

谁能帮我理解这三个窗口。我应该将哪一个视为最终合并文件?我在互联网上找不到任何关于此的信息。

0 投票
1 回答
179 浏览

git - 当在同一位置添加不同的方法(等)时,如何避免合并冲突?

前言:这不是关于合并冲突的一般问题,而是一个非常具体的案例,一直困扰着我。这是非常微不足道的,但它确实相当于一个(轻微的)麻烦,经常足以脱颖而出。我不关心一般的合并,这只是为了节省几秒钟的时间来解决非常机械的冲突,首先避免所说的冲突。我也绝对知道这不是“git问题”或类似的东西。

也就是说,假设我们有一个类的源文件:

master这在和几个功能分支中一开始是相同的。现在,当我们实现我们的功能时,我们向这个类添加更多方法:

分支 1:

分支 2:

新方法不相关,当两个分支合并回master.

显然这会导致合并冲突。原因很清楚——我们在完全相同的位置更改了源文件,显然 git 不能(也不应该)神奇地为我们决定这不是“真正的”冲突;git 必须选择应该首先放置哪些方法,等等。

避免冲突的一种方法是在文件的不同位置插入新方法(假设顺序无关紧要),但我们真的不想花太多精力(或实际上根本不)来保持精神上的跟踪在哪里插入东西或在其他功能中发生了什么。

那么问题是:是否有另一种方式,也许是一些编码约定,你经常应用,它以某种方式避免了这种合并冲突?

0 投票
1 回答
415 浏览

git - 如何使用单独的解决分支解决 Git 冲突?

我在本地有以下分支机构:

  1. 掌握
  2. 分支-a
  3. 分支-b
  4. 分支-c
  5. 开发者

我为 branch-a (PRA-1)、branch-b (PRB-1)、branch-c (PRC-1) 创建了 PR (Pull Request)。我的同事完成了对我的代码的审查。因为我知道 branch-a、branch-b、branch-c 会相互冲突,所以我创建了一个冲突解决分支。

我从 master 解决冲突,并在解决任何冲突的同时继续合并 branch-a、branch-b、branch-c。然后,一旦所有这些都完成,我将这个冲突解决分支合并到分支-a、分支-b、分支-c。

现在我的初始拉取请求已经过代码审查,我希望我的同事在他们各自的第二次审查分支 a (PRA-2)、分支 b (PRB-2) 和分支 c (PRC-2) 的冲突解决方案拉取请求。

0 投票
2 回答
1898 浏览

git - 在 git rebase 冲突中找不到“HEAD”?

我正在尝试 rebase 以压缩提交,但我遇到了冲突:

然后,我执行以下操作来查找冲突:

因为我知道我只更改了 python 文件,所以我使用了*.pyglobbing。但是,没有结果显示!有没有办法准确找出问题所在?

git status, 并且git diff都是干净的。

0 投票
1 回答
352 浏览

git - 如何将文件标记为冲突

我一直在与另一位开发人员合作一个项目,他最近提交并推送了一个冲突且未解决的文件。

此外,他将此文件合并到我们的主分支。今天,经过无数次提交、推送和合并后,我在尝试构建时注意到了这一点。

我使用软重置返回其分支,但无法将文件标记为冲突。

有什么办法吗?

注意:请注意,此文件类似于 docx,只能在特定编辑器中打开和编辑。我无法在 Notepad++ 中打开它并手动解决冲突并提交回来。

0 投票
1 回答
29 浏览

git - 为什么不变的变基会失败?

到目前为止,我有一个历史悠久的 git repo。我试图对早期提交进行一些更改,并发现了奇怪的冲突。

我发现如果我做一个 git rebase COMMIT^ 并选择早期的一个,但是在列表上我什么都没碰,比如选择所有提交,它仍然会通过动作,重播所有提交,并且无法解释对我来说,有些失败。

这怎么可能?如果由于选择了所有提交而没有更改历史记录,那么它怎么会失败?

0 投票
1 回答
434 浏览

git - 有没有办法在 git 中的合并冲突期间从一个分支中获取所有更改?

我使用 git 进行版本控制和 sourcetree 作为 GUI 客户端。最近我将一个分支合并到主分支并发生冲突。我很确定我希望在冲突期间从另一个分支进行所有更改。我是否有办法从另一个分支中获取所有更改,而不仅仅是手动解决冲突?

0 投票
1 回答
18 浏览

git - git bundler 在 gemlock 中与 aptana 冲突

我该如何解决冲突,例如

每次当我拉取并合并到其他分支时,在我的 gemlock 文件中。

它还会在此之前中止应用存储。

0 投票
2 回答
92 浏览

git - 如何在 git rebase 期间回滚单个冲突解决方案

在漫长的变基过程中,我偶然发现了以下情况。我在几个文件中遇到了冲突,并开始一一解决它们并用git add. 一切都完成后,我意识到我在一项决议中犯了错误。现在要做什么?

我知道我总是可以发布git rebase --abort并重新开始,但是在哪里可以更有选择性地回滚添加到索引的单个提交解决方案?

0 投票
0 回答
122 浏览

git - git pull 上的冲突带来未提交的远程更改

我会用一个例子来表达我的问题。
假设 Adam 和 Eve 在 master 分支上工作,他们都在提交 C1 上签出。
Adam 创建提交 A1、A2 并将它们推送到原点。
Eve 创建了与 A2 冲突的提交 E1。
在推送她的更改之前,Eve 必须更新她的本地 repo,所以她运行 git pull。
Eve 现在看到了由 E1 和 A2 引起的冲突(标记为“未合并的路径”),但是当她运行“git status”时,她还可以看到在 A1 中所做的更改为“要提交的更改”。

在 Eve 解决了她的冲突之后,她提交了她的更改和 Adam 从 A1 所做的更改,并推送。
来自提交 A1 的更改现在将出现在 Eve 的原始名称下(而不是 Adam 的)。

为什么会这样?我该如何解决?
另请注意 - 没有冲突时不会发生这种情况。

我知道使用 git pull --rebase 可以完全避免这个问题,并且我理解常规 pull 和 rebase pull 之间的区别,但我不明白它是如何避免这个问题的。

谢谢