问题标签 [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.
git - 谁能帮我理解 Meld diff 工具中的三个窗口
使用Meld
时我看到三个垂直边
在左边Test.txt.LOCAL.10512.txt
在中间Test.txt
在右边Test.txt.REMOTE.10512.txt
谁能帮我理解这三个窗口。我应该将哪一个视为最终合并文件?我在互联网上找不到任何关于此的信息。
git - 当在同一位置添加不同的方法(等)时,如何避免合并冲突?
前言:这不是关于合并冲突的一般问题,而是一个非常具体的案例,一直困扰着我。这是非常微不足道的,但它确实相当于一个(轻微的)麻烦,经常足以脱颖而出。我不关心一般的合并,这只是为了节省几秒钟的时间来解决非常机械的冲突,首先避免所说的冲突。我也绝对知道这不是“git问题”或类似的东西。
也就是说,假设我们有一个类的源文件:
master
这在和几个功能分支中一开始是相同的。现在,当我们实现我们的功能时,我们向这个类添加更多方法:
分支 1:
分支 2:
新方法不相关,当两个分支合并回master
.
显然这会导致合并冲突。原因很清楚——我们在完全相同的位置更改了源文件,显然 git 不能(也不应该)神奇地为我们决定这不是“真正的”冲突;git 必须选择应该首先放置哪些方法,等等。
避免冲突的一种方法是在文件的不同位置插入新方法(假设顺序无关紧要),但我们真的不想花太多精力(或实际上根本不)来保持精神上的跟踪在哪里插入东西或在其他功能中发生了什么。
那么问题是:是否有另一种方式,也许是一些编码约定,你经常应用,它以某种方式避免了这种合并冲突?
git - 如何使用单独的解决分支解决 Git 冲突?
我在本地有以下分支机构:
- 掌握
- 分支-a
- 分支-b
- 分支-c
- 开发者
我为 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) 的冲突解决方案拉取请求。
git - 在 git rebase 冲突中找不到“HEAD”?
我正在尝试 rebase 以压缩提交,但我遇到了冲突:
然后,我执行以下操作来查找冲突:
因为我知道我只更改了 python 文件,所以我使用了*.py
globbing。但是,没有结果显示!有没有办法准确找出问题所在?
git status
, 并且git diff
都是干净的。
git - 如何将文件标记为冲突
我一直在与另一位开发人员合作一个项目,他最近提交并推送了一个冲突且未解决的文件。
此外,他将此文件合并到我们的主分支。今天,经过无数次提交、推送和合并后,我在尝试构建时注意到了这一点。
我使用软重置返回其分支,但无法将文件标记为冲突。
有什么办法吗?
注意:请注意,此文件类似于 docx,只能在特定编辑器中打开和编辑。我无法在 Notepad++ 中打开它并手动解决冲突并提交回来。
git - 为什么不变的变基会失败?
到目前为止,我有一个历史悠久的 git repo。我试图对早期提交进行一些更改,并发现了奇怪的冲突。
我发现如果我做一个 git rebase COMMIT^ 并选择早期的一个,但是在列表上我什么都没碰,比如选择所有提交,它仍然会通过动作,重播所有提交,并且无法解释对我来说,有些失败。
这怎么可能?如果由于选择了所有提交而没有更改历史记录,那么它怎么会失败?
git - 有没有办法在 git 中的合并冲突期间从一个分支中获取所有更改?
我使用 git 进行版本控制和 sourcetree 作为 GUI 客户端。最近我将一个分支合并到主分支并发生冲突。我很确定我希望在冲突期间从另一个分支进行所有更改。我是否有办法从另一个分支中获取所有更改,而不仅仅是手动解决冲突?
git - git bundler 在 gemlock 中与 aptana 冲突
我该如何解决冲突,例如
每次当我拉取并合并到其他分支时,在我的 gemlock 文件中。
它还会在此之前中止应用存储。
git - 如何在 git rebase 期间回滚单个冲突解决方案
在漫长的变基过程中,我偶然发现了以下情况。我在几个文件中遇到了冲突,并开始一一解决它们并用git add
. 一切都完成后,我意识到我在一项决议中犯了错误。现在要做什么?
我知道我总是可以发布git rebase --abort
并重新开始,但是在哪里可以更有选择性地回滚添加到索引的单个提交解决方案?
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 之间的区别,但我不明白它是如何避免这个问题的。
谢谢