问题标签 [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合并在我的文件中留下了HEAD标记
我尝试使用 Git 在命令行中合并文件,但出现一条错误消息,告诉我合并已中止。
我以为这就结束了,但后来我意识到我的文件中有 gitmarks。像这样:
这些文件不是由我编辑的,并显示插入的行:
- 小于号 (
<<<<<<< HEAD
)后的 HEAD - 更改的代码行
- 一串等号 (
=======
) - 新版本的代码
- 另一行以大于号和分支名称 (
>>>>>>> gh-pages
)开头
更糟糕的是文件内容不再按顺序排列。有谁知道我如何让这些文件恢复正常,以及我在 gh-branch 中所做的更改合并到 master 分支中?
git - 仅本地文本段显示在冲突文件中的标记之外
在 git 生成的冲突解决文件中,仅应在标记之外显示公共代码('<<<<<<< ours' - '>>>>>>> theirs') - 对吗?!
我有一个 CSS 文件,其中包含我在本地版本中插入的注释并且发生了冲突,并且此注释段列在标记之外。
这发生在普通样式和 diff3 样式(包括基本段)中。
使用可视化工具(在我的情况下为 p4merge)时,所述文本段仅在本地显示,而不在基本或远程显示。
还检查了:
发生什么了?!
git - 合并原始字符串的两个修改版本
这与版本控制有关,在我们不知道更改的确切时间的并行修改情况下,因此我们假设我们同时收到一个文件的两个修改版本。我简化了问题:
我有一个字符串 S,有两个修改版本,称为 T 和 U。我可以使用 diff 看到 S 和 T 之间的差异。让我们将由 T over S 组成的补丁称为 PT。U也一样,我们会有PU。现在,我想以一种安全的方式将 PT 和 PU 合并到一个补丁中,能够在“字”级别而不是典型的编程线级别检测 PT 和 PU 之间的冲突。
问题:
1-有没有这样的算法来合并两个补丁?
2- 如何检测 T 和 U 之间的冲突?
3- 处理冲突的共同政策是什么?对我来说,一种解决方案是始终从其中一个版本中选择更改,比如 T,以防发生冲突。
有什么工具可以做我正在寻找的东西吗?
git - Git 中的错误合并冲突解决方案。重试错误的提交,从那以后保持更改?
我正在和另一个开发人员一起做一个小项目,我们遇到了一些情况。我们都熟悉 SVN,但 Git 对我们俩来说都是新手。
我们正在处理存储库中的一个分支,每个分支都处理我们项目的不同方面。
发生的事情是他提交了一些东西,然后我提交了一些东西,发生了冲突(在设计器文件中,因为它试图将我们的两个新文件放在同一个“位置”),当我解决它们时,我一定错过了一些东西,但现在它不工作。我设法以某种方式使文件进入工作状态,并继续我快乐的方式,添加更多不受糟糕冲突解决方案影响的东西。
所以看起来。
A(好)-> B(坏)-> C(尝试修复)-> D(恢复错误提交)-> A -> E(全新文件)-> F(全新文件)-> G(其他dev 第一次提交,因为大问题,引入了更多的问题和冲突。)
我基本上想做的是回到A。并合并我的B,E和F提交,此时另一个开发人员可以提交G。此时我不知道B和E之间发生了什么,所以我宁愿放弃它,因为这只是我试图解决问题。但是,当我回到 A 时,我不会收到与最初提交 B 时相同的冲突提示。
请上帝帮助我。
git - Git将修补程序合并到多个分支
我一直试图围绕 git 分支模型。我一直在查看http://nvie.com/posts/a-successful-git-branching-model/以获得一些想法,并且来自 Subversion 我真正期待的一件事是在一个地方进行更改并且将它合并到所有需要它的分支。在 Subversion 中,我们最终做了很多代码副本。
但是我仍然没有完全理解这一点。这是我拥有的标准工作流程类型,它总是会出现冲突。
所以master在4.0-SNAPSHOT,分支在3.1-SNAPSHOT。
不是我想在分支上创建一个修补程序并将其移动到主干。
我理解它为什么会发生,这是有道理的。有没有更好的方法来做到这一点?
我读到了cherry-pick,我对其进行了测试并且确实有效:
但是,这似乎不是处理此问题的“正确”方法。有什么建议么?
git - 处理 git 中重叠更改的建议?
我对 git repo 中的某些代码进行了两次更改,但我想为每个更改单独提交。这些更改并不冲突,但它们确实重叠——也就是说,它们进行独立的更改,有时碰巧在同一条线上。这意味着这git add --patch
行不通。
此类更改的一个示例可能是在所有逗号后添加空格以符合编码标准,并通过在函数前面加上字符串来命名空间。
是否有任何与 git 相关的智能方法来处理这种冲突,或者是从头开始并撤消其中一个更改的唯一选择?
php - Github 合并问题(显示所有行)
我正在尝试合并我的两个分支,在尝试解决冲突时,我通常可以打开文件并添加了 github
这向我展示了两个版本中哪些特定的代码行不同,然后我可以决定保留哪些行。但是,当我合并一些 PHP 文件时,并没有显示出确切的差异。相反,PHP 文件的顶部是我的版本,包含所有行,底部是另一个版本。尝试以这种方式解决冲突要困难得多。关于为什么会发生这种情况有什么建议吗?如何以更简单的方式解决我的冲突?
php - 用 GIT 合并两个重新格式化的 PHP 文件
我们在 GIT 中有两个带有一些 PHP 文件的分支。我们需要做的就是将一个合并到另一个。
不幸的是,有两个巨大的文件被我们的 IDE 自动重新格式化(空格、大括号、换行符等)。当我们尝试合并它们时,GIT 显示出大量的冲突,这些冲突是人类无法手动解决的。
我们已经尝试过这篇文章中描述的方法:http: //blog.wuwon.id.au/2010/09/painless-merge-conflict-resolution-in.html 但我们甚至看不到实际的变化(基础>本地,远程>本地),因为我们甚至无法区分实际的语义变化和句法变化(大量代码,容易遗漏一些东西)。
我们现在正在处理一个旧代码,需要进行大量重构和重新格式化(代码标准 PSR 0-2),所以这种情况很常见。
请告知如何以最有效的方式处理此问题。谢谢!
git - Git 没有显示任何冲突,并且正在覆盖我的本地副本
我在 git 上的套路一直很简单:
然而,由于一些未知的原因,尽管与原点有很多冲突,但在拉取之后,我没有遇到任何冲突,并且未经我的许可,它会强制更新我的本地副本。类似这样的事情:'2 个文件已更改,2 个插入(+),6 个删除(-)'。但就我而言,不应该通过简单的合并来解决冲突,而应该需要我这边手动解决冲突。为什么 git 不让我手动解决冲突?提前致谢!注意:我的 git 命令都没有强制选项 -f
git - 由于重命名,Git revert 会产生冲突“被我们删除”
我正在尝试恢复修改了已重命名的文件的提交。
修改过的文件曾经被调用bin/internal/call_parser.rb
,当前被调用lib/call_parser.rb
,我在尝试还原后进入了我的状态
据我所知,lib/call_parser.rb 的当前版本和 bin/internal/call_parser.br 文件的当时版本应该足够相似,以至于 git 可以检测到共享内容(我听说 git 可以工作文件内容,而不是文件名)。我如何告诉 git 更加努力地工作以检测重命名并因此恢复为 lib/call_parser.rb 中的内容?