git-merge相关内容

Git 中的合并是对称的吗?

假设我们有两个分支(B 和 C),它们与一个共同的祖先 A 不同.从 B 合并到 C 会产生与从 C 合并到 B 的结果相同的结果吗? A|/\乙丙 澄清 - 我假设任何手动合并冲突解决方案都会在两个方向发生.但是发生的任何自动合并会导致选择相同的代码吗?这是我的假设,因为提交日期在两个方向上都是相同的. 进一步澄清 - 我知道实际合并会根据方向产生彼此的“镜像".我只是询问自动解决的 ..
发布时间:2021-12-27 22:03:01 其他开发

告诉 git 不要合并二进制文件而是选择

当本地修改二进制文件、swfs、jars和flvs,我尝试pull in时,git尝试合并并报告冲突. 然后,我分支到一个临时分支,并提交本地更改的二进制文件,并在拉取后使用递归他们的策略将它们合并回来.-- 工作太多. 有没有办法告诉 git,不要尝试合并二进制文件并询问我使用这些版本中的哪一个. 解决方案 您可以在 .gitattributes 文件中设置合并驱动器(仅适用 ..
发布时间:2021-12-27 21:54:18 其他开发

如何在具有跨平台兼容性的 Git 提交中强制使用一致的行结尾

我在与使用不同操作系统的人一起工作时遇到了由于行尾导致的合并冲突问题.我在 Windows 上工作,我的同事在 Mac 上工作.当他推送他的更改时,有时他没有处理过的文件会在 diff 中显示为已更改,因为现在每个文件的行尾都显示 ^M.这导致了合并冲突.我在 Git 文档中阅读了以下内容: Git 可以通过将 CRLF 行尾自动转换为 LF 来处理这个问题您将文件添加到索引,反之亦然,当它 ..
发布时间:2021-12-27 21:49:40 其他开发

如何使用 vimdiff 解决 git 合并冲突?

我刚刚在 git 中将一个分支合并到我的 master 中,但我得到了 自动合并失败;修复冲突,然后提交结果. 现在我运行 git mergetool 并打开 vimdiff,如下图所示.我不知道如何使用 vimdiff.这里的每个面板是什么意思,我应该如何解决合并冲突? 解决方案 所有四个缓冲区都提供同一文件的不同视图.左上角的缓冲区 (LOCAL) 是文件在您的目标分支中的外观(您正在 ..
发布时间:2021-12-24 08:32:03 其他开发

如何使用 Visual Studio Code 作为 Git MergeTool 的默认编辑器

今天我试图在 Windows 命令提示符下使用 git mergetool 并意识到它默认使用 Vim,这很酷,但我更喜欢VS 代码. 我怎样才能让 Visual Studio Code 作为我的 GUI 来处理 Git 的合并冲突(或者甚至作为比较工具)? 解决方案 截至 Visual Studio Code 1.13 Better Merge 已集成到 Visual Studio ..

Git:将提交合并到不同的分支

所以我有 3 个分支; develop - 我的持续开发分支 version_1 - 一个发布分支 version_2 - 一个发布分支 我不得不在 version_2 上做一个修补程序来重新发布那个版本,这是在 2 个文件中的 2 行更改,非常小. 我想将该修复应用到 version_1 和 develop. 所以我; git checkout version_1g ..
发布时间:2021-12-14 13:27:52 其他开发

请输入提交消息以解释为什么需要进行此合并,尤其是将更新的上游合并到主题分支时

我正在使用 Git.我从远程仓库中拉取并收到一条错误消息: 请输入提交消息以解释为什么需要进行此合并, 特别是如果它将更新的上游合并到主题分支中. 我尝试输入消息并按 Enter 但没有任何反应. 我如何告诉 Git/终端我已经完成了我的消息输入? 我在 OS X 上使用终端. 解决方案 这不是 Git 错误消息,而是编辑器,因为 git 使用您的默认编辑器. ..
发布时间:2021-12-06 21:17:59 其他开发

如何解决git错误:“更新被拒绝,因为您当前分支的提示落后"

一位善意的同事将更改推送到 Master 而不是创建分支.这意味着当我尝试提交时会出现错误: 更新被拒绝,因为您当前分支的提示落后 我知道这应该通过提出重新同步的请求来解决,但我不想丢失我在本地所做的更改,我同样不想强制提交并清除所做的更改别人的. 允许我合并更改而不丢失任何更改的正确方法是什么? 解决方案 如果你已经提交了一些提交,你可以执行以下操作 git pull ..
发布时间:2021-12-06 09:49:53 其他开发

.gitignore 和“以下未跟踪的工作树文件将被检出覆盖";

所以我在我的 .gitignore 文件中添加了一个文件夹. 一旦我做了一个git status,它就会告诉我 # 在最新的分支上无需提交(工作目录干净) 但是,当我尝试更改分支时,我得到以下信息: My-MacBook-Pro:webapp marcamillion$ git checkout develop错误:以下未跟踪的工作树文件将被检出覆盖:public/system/ima ..
发布时间:2021-12-06 09:46:01 其他开发

在拉取期间解决 Git 合并冲突以支持其更改

如何解决 git 合并冲突以支持拉取更改? 基本上我需要从工作树中删除所有冲突的更改,而不必通过 git mergetool 处理所有冲突,同时保持所有无冲突的更改.最好在拉动时这样做,而不是之后. 解决方案 git pull -s recursive -X theirs 或者,简单地说,对于默认存储库: git pull -X 他们的 如果您已经处于冲突状态... git ..
发布时间:2021-12-06 09:41:34 其他开发

我遇到了合并冲突.如何中止合并?

我使用了 git pull 并且发生了合并冲突: 未合并:_widget.html.erb您正处于合并冲突的中间. 我知道该文件的另一个版本是好的,而我的则是坏的,因此应该放弃我的所有更改.我该怎么做? 解决方案 既然你的 pull 不成功那么 HEAD (不是 HEAD^)是您分支上的最后一个“有效"提交: git reset --hard HEAD 您想要的另一部分是让他们的更 ..
发布时间:2021-12-06 09:33:36 其他开发

如何防止我的“主"分支中的狐步舞合并?

foxtrot 合并是一种合并,其中“origin/master"合并为第二个(或更高版本)父级,如下所示: Commit 'D' 是 Foxtrot 合并,因为 'origin/master' 是它的第二个父级.请注意此时来自“origin/master"的第一父历史记录如何包含提交“B". 但是在我的 git repo 中,我需要所有涉及“origin/master"的合并,以保持 ..
发布时间:2021-12-06 09:28:21 其他开发

“git merge"和“git rebase"有什么区别?

git merge 和 git rebase 有什么区别? 解决方案 假设最初有 3 个 commit,A,B,C: 然后开发人员 Dan 创建了 commit D,开发人员 Ed 创建了 commit E: 显然,这个冲突应该以某种方式解决.为此,有两种方法: 合并: 提交 D 和 E 仍然在这里,但我们创建了合并提交 M 继承了 D 的变化code> 和 E.然 ..
发布时间:2021-12-06 09:22:02 其他开发

如何将现有的 Git 存储库导入另一个?

我在名为 XXX 的文件夹中有一个 Git 存储库,并且我有第二个名为 YYY 的 Git 存储库. 我想将 XXX 存储库作为名为 ZZZ 的子目录导入 YYY 存储库并添加所有 XXX> 的更改历史记录为 YYY. 之前的文件夹结构: ├── XXX│ ├── .git│ └──(工程文件)└── YYYY├── .git└──(项目文件) 之后的文件夹结构: YYYY├── ..
发布时间:2021-12-06 09:19:41 其他开发

撤消 git pull,如何将 repos 恢复到旧状态

有什么方法可以恢复或撤消 git pull 以便我的源/存储库回到执行 git pull 之前的旧状态?我想这样做是因为它合并了一些我不想这样做的文件,而只合并了其他剩余的文件.所以,我想取回那些文件,这可能吗? 编辑:我想撤消 git merge 以进行澄清.看到一些答案后,我做了这个 git reflogbb3139b... HEAD@{0}:拉:快进01b34fa... HEAD@{ ..
发布时间:2021-12-06 09:19:32 其他开发

你什么时候会使用不同的 git 合并策略?

在 git-merge 的手册页中,您可以使用多种合并策略. 解决 -这只能使用 3 路合并算法解析两个头(即当前分支和您从中拉出的另一个分支).它会尝试仔细检测交叉合并的歧义,并且通常被认为是安全且快速的. 递归 -这只能使用 3 路合并算法解决两个头.当有多个共同祖先可用于 3 路合并时,它会创建一个共同祖先的合并树,并将其用作 3 路合并的参考树.据报道,通过对取自 Linux ..
发布时间:2021-12-06 09:18:01 其他开发

是否有 git-merge --dry-run 选项?

我正在合并一个可能有很多冲突的远程分支.我如何判断它是否会发生冲突? 我在 git-merge 上没有看到类似 --dry-run 的内容. 解决方案 如前所述,传入 --no-commit 标志,但为了避免快进提交,也传入--no-ff,像这样: $ git merge --no-commit --no-ff $BRANCH 检查分阶段更改: $ git diff --cac ..
发布时间:2021-12-06 09:09:40 其他开发

在 Git 中重新进行恢复合并

我在这里遇到了一个小问题:我在 Git 中有一个特定于问题的分支 28s,我将它合并到了通用的 develop 分支中.事实证明我做得太快了,所以我使用 git-revert 来撤消合并.然而,现在已经到了将28s合并到develop中的时候了,但是git-merge命令看到了原来的合并,高兴地宣布一切顺利,分支已经存在合并.现在我该怎么做?创建一个'Revert“Revert"28s -> de ..
发布时间:2021-12-06 09:01:33 其他开发

不使用 checkout 合并、更新和拉取 Git 分支

我在一个有 2 个分支 A 和 B 的项目上工作.我通常在分支 A 上工作,并从分支 B 合并内容.对于合并,我通常会这样做: git 合并 origin/branchB 但是,我也想保留分支 B 的本地副本,因为我可能偶尔会检查分支而不先与分支 A 合并.为此,我会这样做: git checkout branchB拉git checkout branchA 有没有办法在一个命令中完成上述 ..
发布时间:2021-12-06 08:58:34 其他开发