问题标签 [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 冲突(重命名/重命名)
合并分支后,我收到了conflict (rename/rename)
一堆文件,带有file~HEAD
,并file~my_test_branch
创建了。如何解决这些?
谢谢
git - 在冲突的 git 合并后清理?
.h
我正在处理的项目中的头文件中有一个小冲突。这个项目在 Git 中被跟踪。
幸运的是,冲突很容易解决。我用了
git mergetool
opendiff
并在我的 Mac 上选择了似乎是 FileMerge的默认 ( )。我进行了适当的更改,保存了文件并关闭了。
然后Git问我合并是否成功,我说是:
Was the merge successful? [y/n] y
但现在,我有:
哪些额外的垃圾冲突文件是由 FileMerge 创建的,哪些是由 Git 创建的?
更重要的是:我如何删除它们?
git - git svn:避免分支、合并和变基中的大规模冲突
我使用 git-svn 在两台机器(Mac 和 Windows)上工作。我的远程仓库是一个 svn。我将 Mac 用作主存储库,将 Windows 用作从属。所以所有的 git-svn 操作都是在 Mac 上完成的,而 Windows 机器只有在 Mac 上“git pull”或“git push”。
我的工作流程如下所示,经常让我陷入需要解决数百个冲突的境地:
- 我主要在 Mac 上工作,然后让 Windows “git pull”并进行测试。
- 有时我需要在 Windows 上工作一点并提交到功能分支。
- 然后我“git push origin”将分支推回Mac。
- 然后在 Mac 上我“git merge windows_branch”到我的主分支。
- 最后我“git svn rebase”和“git svn dcommit”。
在第 5 步,冲突来了!!我曾经使用“git mergetool”、“git rebase --continue”、“git rebase --skip”和“git rebase --abort”工作流程花费 3 个小时来处理每一个冲突。如果幸运的话,我可以把它们全部弄清楚;但有时,它们太多了,更糟糕的是,变基在遍历历史时反复经历同一组冲突(git只知道更改,不知道文件);最终我感到困惑,错误地解决了其中一些问题,并引发了更大的噩梦。我学到的一些脚本可以帮助我执行“git accept-ours”或“git accept-theirs”之类的操作,但这对于涉及已删除文件的历史记录效果不佳,我仍然需要反复接受。
这是一场噩梦,以至于我真的开始犹豫是否要使用分支和合并工作流程。问题仍然是我不知道为什么会有这么多冲突。但是,如果有推荐的工作流程或实践可以帮助我防止此类冲突或轻松批量解决,那就太好了。
谢谢你的帮助!
git - 通过 X 提交提前 git...找不到解决方案
这是顺序
此时我对分支没有任何编辑
- 我
git pull --rebase
在一个跟踪到远程分支的分支中做了一个 - 发生冲突
- 我做了
git reset --hard
- 然后
git rebase --abort
现在它说我的分支领先于 X 次提交
我又试了git reset --hard
一次,然后再次git fetch
git git fetch origin
checkout 分支都无济于事
我该如何解决这个问题?
windows - Windows Github 基础知识和冲突处理(如 VSS)
我是 Git / GitHub 的新手(过去使用过 VSS)。根据我的SO Post,我使用的是Windows GitHub,与基于命令提示符的 Git bash 内容相比,它的用户友好。特别是同步功能,不用担心SSH等......
我试图了解 VSS 方面的流程(至少基本签入/签出和回滚)。我的理解 -
- 最初,在本地克隆一个远程存储库(可能就像在 VSS 中检出整个项目,但在 Git 中它是一个单独的克隆副本)
- 稍后我只需要拉取(比如获取最新的 VSS)。进行更改、提交(全部在本地克隆分支上完成)——比如登台签入
- 最后,将提交(分阶段更改)推送到远程存储库(如 VSS 中的最终签入)。
该工具可以检测/处理冲突吗? 我找到了一个很好的SO Post,但需要确认。我相信我会在推送时收到冲突消息。然后我将不得不手动更改文件(合并更改),然后再次推送它(就像我们在 VSS 中合并)。我必须使用命令行还是可以在工具中使用?
以及如何从 Git bash 或工具回滚到上一个版本?
我还找到了一些 VS.Net 源代码控制提供程序和扩展,但有些让我回到了旧的 SSH 和其他复杂的东西。我想保持简单,并尽量减少复杂性以鼓励我的团队......如果你明白我的意思。VSS 使用或学习并不痛苦 :-)
参考
git - 为什么当HEAD版本在该行没有内容时git显示合并冲突
我试图git merge master
从另一个分支做一个,然后我遇到了这个冲突:
我知道如何解决冲突,但我很好奇为什么 git 首先将其识别为冲突,因为 HEAD 版本在特定行上没有内容。
git 只是添加来自 master 的 3 行并合并它不是一个简单的案例吗?
更新:
@Marcin 是正确的。根据答案,我做了一个测试,假设我有一个如下所示的 git 树:
temp.txt
中的内容commit A
:
temp.txt
中的内容commit B
:
temp.txt
in的内容commit C
为空。
在这一点上,如果我这样做:
然后我会得到以下信息:
git - 仅 Git 取消提交消息
我经常在这种情况下,我不知道该怎么办。
- 我在一个分支中被改变了一些东西。承诺并推动。
- 我仍在同一个分支上工作,有人提交并推动。
- 我完成了更改并做了git commit -m "Blabla"并推送了。
- Git 拒绝推送,因为存储库在前面,我可能会丢失一些更改
我的想法是:
- Go pre git commit -m "blabla" (<- 这是我卡住的地方)
- 存储更改
- 从 repo 中提取最新更改
- 将存储与工作目录合并
- 再次提交
- 推
您如何解决此类“冲突”,或者在这种情况下最好的做法是什么?
svn - 移除 SVN 合并和推迟期间生成的新文件
我最近尝试将我的分支与主干版本合并。在合并的过程中,碰巧发生了很多冲突,我把它们推迟了。这反过来又创建了许多新文件,例如扩展名为“*.cpp.merge-left.r1048”的示例。
如何通过 SVN 自动删除这些文件并返回到以前版本的分支?
git - git merge squash - 当我想要的只是我压缩的分支的更改时解决冲突
我有github分支,当主分支达到某种可接受的状态时,我将它推送到 github(已经完成了一次)。为此,我做了:
我想要的只是让工作目录处于与主 HEAD完全相同的状态。
是我做错的方式(反复合并 --squashing 到 github 分支)。
有没有一种简单的、防白痴的方法来实现这一点(无需经历每次冲突)。
作为奖励,我想知道这张图片中使用本地版本和使用远程版本的含义 - msysgit: