问题标签 [merge-conflict-resolution]
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 - 如何解决 Git 存储库中的合并冲突?
我想解决我的Git存储库中的合并冲突。
我怎样才能做到这一点?
git - 解决与二进制文件的 Git 冲突
我一直在 Windows 上使用 Git (msysgit) 来跟踪我一直在做的一些设计工作的更改。
今天我一直在另一台 PC 上工作(带有远程仓库brian
),我现在正试图将今天完成的编辑合并回我笔记本电脑上的常规本地版本。
在我的笔记本电脑上,我习惯于git pull brian master
将更改拉入我的本地版本。除了主要的 InDesign 文档外,一切都很好——这显示为冲突。
PC 上的版本 ( brian
) 是我想保留的最新版本,但我不知道是什么命令告诉 repo 使用这个版本。
我尝试直接将文件复制到我的笔记本电脑上,但这似乎破坏了整个合并过程。
谁能指出我正确的方向?
git - 如何解决由于删除分支中的文件而导致的合并冲突?
我已经创建了一个dialog
分支,当我尝试将它合并到master
分支时。有2个冲突。我不知道如何解决CONFLICT (delete/modify)
。你能告诉我该怎么做吗?
我已经打开src/DialogAdapter.java
,修复了冲突并做了一个git add src/DialogAdapter.java
. 我还需要做什么?
sqlite - 如果不存在则插入其他更新?
我已经为经典的“如何插入新记录或更新已存在的记录”找到了一些“将成为”解决方案,但我无法让它们中的任何一个在 SQLite 中工作。
我有一个定义如下的表:
我想要做的是添加一个具有唯一名称的记录。如果名称已经存在,我想修改字段。
有人可以告诉我该怎么做吗?
mercurial - Mercurial,冲突,合并,以后的进一步冲突,Mercurial 还记得最初的解决方案吗?
想象一下这个场景:
- Alice 和 Bob 都克隆了一个中央主 Mercurial 存储库,其中包含 1 个文本文件
- Alice 和 Bob 都对文件中的同一行进行了更改,并提交
- Bob 推送回中央存储库,而不是 Alice
- Alice 现在拉入她的存储库,注意到她现在有两个头,然后合并
- 由于合并是冲突,她解决了冲突
- Alice 然后提交但不推送
- Bob 现在在文件的其他位置(即,离初始更改不远)对文件进行进一步更改,然后提交并推送
- Alice 在她的合并文件中,在 Bob 刚刚更改的同一位置进行了类似的更改,并提交
- 爱丽丝拉,并发现另一个双头存储库,她合并
这是上述场景的不同视图
(“CHANGE”后面的数字表示该人更改了文件的“部分X”。如果两个用户都更改了相同的部分,我们将面临合并冲突,如果他们更改不同,则没有那么多)
在这一点上,我的问题是:
- 合并工具会考虑她的第一个合并决议吗?由于 Bob 从未提取 Alice 的更改,因此他的副本仍然没有 Alice 所做的任何更改、她的初始更改(与 Bob 的冲突)、她的合并以及她的最新更改(与 Bob 的最新更改冲突) .
如果我只是将 Bob 的文件版本和 Alice 的文件版本提供给任何合并程序,它会将这两个更改标记为冲突。
换句话说,冲突工具会尝试要求 Alice 解决原始冲突和新冲突,还是只解决最新的冲突?
我猜(我还没有尝试过,仍在尝试构建某种测试脚本来测试这个问题)Mercurial 只会要求 Alice 解决最新的冲突。
如果我将 Mercurial 配置为使用第 3 方差异/合并程序会怎样?这仍然适用吗?例如,我已将我的安装配置为使用Beyond Compare,是否会在有或没有初始分辨率的情况下给出这两个文件(Bob 的只有他的更改,而 Alice 的只有他的更改 + 合并分辨率)?换句话说,如果使用Beyond Compare,这里也会发生正确的事情(假设它确实发生了。)
git - 单个文件中的 GIT 2 或更多合并冲突 - p4merge 如何处理?
- GIT p4merge - 同一文件中有2个或更多冲突
我已经将 p4merge 与 GIT 集成在一起,我曾经遇到过这种情况。
我有一个合并冲突的文件。文件说 foo.c 在 3 行不同的代码中有合并冲突(第一行有冲突,中间的一些行有冲突)。
当我解决冲突的第一行(不是其他冲突行)并保存(使用 p4merge 上的保存按钮)时,我猜它会将 foo.c 添加到索引中,当我提交时,git 允许我提交而不给我一个错误或警告以解决同一文件中的其他冲突行。
这是 GIT 或 p4merge 的问题吗?我认为 GIT 应该警告或错误指出该文件还有其他冲突的行。但它只是提交。
- 在 GIT 中合并特定文件
我的另一个问题是是否有命令可以让开发人员合并某个文件?当我运行 git mergetool 时,它会一个一个地打开所有合并冲突,而不是像 clearcase 这样的方法,我可以说合并这个选定的文件?
merge-conflict-resolution - 我可以在解决合并冲突时更改代码吗?
我有一个关于解决合并冲突的“最佳实践”问题。
假设我有 master 并且需要将一个功能分支合并到其中,它引入了日志记录工具。此外,假设在合并期间,我遇到了冲突,因为 master 中的一些打印语句被修改,这些语句被功能分支中的日志语句替换。
现在,在手动合并解决期间,您是否说允许解决冲突的人也替换与日志记录相关但尚未在功能分支中处理的代码?例如,在包含冲突的代码块中,master 中还添加了一条新的打印语句。由于它还没有在功能分支中,它将保留在合并的代码中,除非有人用正确的日志语句替换它。
还是应该合并只触及实际冲突,将上述所有不一致留给未来的提交?
mercurial - Mercurial合并真棒-我错过了什么?
我使用 Mercurial 已经有一段时间了,并且有一个“事实”被多次给出。
事实上,昨天在观看 Fogcreek 制作的视频时,我突然想到了这个视频:Fog Creek Kiln: Unlock the power of DVCS for your company似乎有些东西对我不起作用。
在该视频的大约 1:39 及以后,它强调说,虽然其他版本控制系统跟踪修订(即快照),但 DVCS 像 Mercurial 跟踪变更集(即快照之间发生的事情。)
这使他们在合并场景中具有优势,然后展示了一个示例。如果您在一个分支中移动一个函数,并在另一个分支中更改相同的函数,Mercurial 能够合并它。
我已经在其他地方看到过这个,虽然我现在找不到任何直接链接。
这似乎对我不起作用。
编辑:这是 TortoiseHg 的默认“beyondcompare3”合并工具配置的问题。我将下面的配置添加到我的 Mercurial.ini 文件中,现在它可以按预期工作了。当然,如果它不能自动合并,它会使用 GUI 工具,但是现在这个问题中描述的合并在没有任何提示的情况下运行,并且开箱即用地做正确的事情
为了测试这一点,我将此文件提交到存储库:
然后在从这个分支出来的两个不同的并行变更集中,我做了以下两个更改:
- 我将 Function1 函数移到文件底部
- 我更改了 Function1 中的消息
然后我尝试合并,Mercurial 给了我一个合并冲突窗口,试图弄清楚我做了什么。
基本上,它会尝试更改 Function2 中的文本,该文本现在位于 Function1 移动之前的位置。
这是不应该发生的!
这是用于复制我的示例的源文件:
用于生成存储库的批处理文件:
该文件的 3 个版本,example1.linq、example2.linq 和 example3.linq:
Example1.linq:
Example2.linq:
Example3.linq:
git - 解决 GIT 文件中的部分冲突
我想讨论的场景是我有一个合并存储库,它是共享存储库,开发人员将 cd 进入其中以解决合并冲突。
- 单个文件中有 2 个或多个合并冲突。
- 每个冲突都必须解决不同的用户。
- 每个开发人员 cd 进入这个存储库以解决合并冲突。
- 假设 foo.c 有 3 个合并冲突
- 一位用户解决了 foo.c 中的单个冲突并保存在图形合并工具中
现在 GIT 将其识别为“git add”,尽管文件的其他部分仍然存在冲突。然后,如果另一个开发人员执行“git mergetool foo.c”,它不会因为冲突而弹出 foo.c。
是否有解决此问题的图形工具。允许多个用户在同一个文件中解决和保存冲突。
git - 当有人从我的 git 提交中挑选并做出自己的提交时,我该如何合并?
假设我 fork 某人的 git repo 并提交 A、B、C 和 D。我从那时分叉的 persom 选择了 A 和 C,因此成为 A' 和 C'。他还自己提交 X、Y 和 Z。所以在这一切之后,我的分支有 ABCD,他的有 A' C' XY Z。假设两个分支都已发布,所以 rebase 不是一个有吸引力的选择。还假设 XYZ 不与任何 ABC D 冲突。如何以有用的方式合并这两个分支?我应该简单地合并然后手动解决所有问题吗?对于合并头的日志中的重复提交消息,我能做些什么吗?从现在开始,这两个分支是否注定只能通过挑选彼此的提交来同步?