标签: git-merge-conflict

Git Rebase重复上一次Rebase的冲突

是否存在任何常见的git使用错误,或者通常是否存在任何原因导致如果这些冲突在之前的rebase中得到解决,那么rebase会重复前一个rebase的冲突?
此外,rebase是否优先考虑如何解决冲突?例如,rebase是否希望在代码中通常的git冲突括号中的两个可能的代码片段之间进行严格的选择,或者只是为了去除它之间的所有内容>>>,<<<?我很好奇,如果删除两个代码选择来解决冲突会影响rebase正确解决以后冲突的能力.

进一步阐述:我有一个master分支和一个dev分支.该dev分支我一直就在身边一段时间,所以不同的提交数量的增加相当大的,在100秒(我知道...应该devmaster更多的时候). dev分支本身有几个较小的特征分支从它切割,然后合并回来,只有被剪切,重新定位,与dev分支合并,永远不会master分支(我记得).我devmaster1周前将分支重新分支到分支机构.我已经在dev分支上做了一些更改,并希望master再次进行重新设置,以便我可以准备合并.master在1周的窗口中,分支的变化非常小,但代码文件不重叠.然而,当重订devmaster我看到了相同的一组矛盾的混帐升起时,我试图在当前变基相比,当我重订一周前为.

谢谢!

git git-rebase git-merge-conflict

1
推荐指数
1
解决办法
1449
查看次数

Git - 如何隐藏冲突并稍后解决

我将一个分支合并到另一个分支并遇到了冲突。我部分解决了这个问题,但我需要同事的帮助才能完成解决。与此同时,当我在等他的时候,我想把这场冲突隐藏起来,继续做其他事情。但我不想失去已经解决的事情的进展。

我应该怎么办?除了在另一个目录中再次克隆存储库或手动复制冲突的文件然后稍后将其复制回来之外,还有其他方法可以实现此目的吗?

如果我尝试简单地隐藏它,git 会像这样抱怨:

path/to/file/with/unresolved/conflict: needs merge
path/to/file/with/unresolved/conflict: needs merge
path/to/file/with/unresolved/conflict: unmerged (somesha)
path/to/file/with/unresolved/conflict: unmerged (somesha)
path/to/file/with/unresolved/conflict: unmerged (somesha)
fatal: git-write-tree: error building trees
Cannot save the current index state
Run Code Online (Sandbox Code Playgroud)

git git-stash merge-conflict-resolution git-merge-conflict

1
推荐指数
1
解决办法
246
查看次数

重现 Git 合并冲突:DD

我正在编写一个测试脚本,并尝试在通过“git status --short”显示时重现 git merge 冲突 DD。我过去见过这种冲突类型。

  • DD(未合并,均已删除)

我不断提出与我尝试的一切都不冲突的想法。

我需要执行哪些步骤才能生成“DD”冲突?“DD”冲突是什么意思?

我看到了这个:Git:如何创建不同的未合并状态? 但其中列出的步骤在 Git 的更高版本中不再产生任何冲突。

git git-merge git-merge-conflict

1
推荐指数
1
解决办法
2294
查看次数

为什么Git会造成"空白"冲突?

为什么Git会产生如下冲突:

<<<<<<< mouseLabelCallbacks
const QMap<Qt::MouseButton, QString> TLabel::mMouseButtons = {
        {Qt::NoButton, QStringLiteral("NoButton")},           {Qt::LeftButton, QStringLiteral("LeftButton")},       {Qt::RightButton,     QStringLiteral("RightButton")},
        {Qt::MidButton, QStringLiteral("MidButton")},         {Qt::BackButton, QStringLiteral("BackButton")},       {Qt::ForwardButton,     QStringLiteral("ForwardButton")},
        {Qt::TaskButton, QStringLiteral("TaskButton")},       {Qt::ExtraButton4, QStringLiteral("ExtraButton4")},   {Qt::ExtraButton5,     QStringLiteral("ExtraButton5")},
        {Qt::ExtraButton6, QStringLiteral("ExtraButton6")},   {Qt::ExtraButton7, QStringLiteral("ExtraButton7")},   {Qt::ExtraButton8,     QStringLiteral("ExtraButton8")},
        {Qt::ExtraButton9, QStringLiteral("ExtraButton9")},   {Qt::ExtraButton10, QStringLiteral("ExtraButton10")}, {Qt::ExtraButton11,     QStringLiteral("ExtraButton11")},
        {Qt::ExtraButton12, QStringLiteral("ExtraButton12")}, {Qt::ExtraButton13, QStringLiteral("ExtraButton13")}, {Qt::ExtraButton14,     QStringLiteral("ExtraButton14")},
        {Qt::ExtraButton15, QStringLiteral("ExtraButton15")}, {Qt::ExtraButton16, QStringLiteral("ExtraButton16")}, {Qt::ExtraButton17,     QStringLiteral("ExtraButton17")},
        {Qt::ExtraButton18, QStringLiteral("ExtraButton18")}, {Qt::ExtraButton19, QStringLiteral("ExtraButton19")}, {Qt::ExtraButton20,     QStringLiteral("ExtraButton20")},
        {Qt::ExtraButton21, QStringLiteral("ExtraButton21")}, {Qt::ExtraButton22, QStringLiteral("ExtraButton22")}, {Qt::ExtraButton23,     QStringLiteral("ExtraButton23")},
        {Qt::ExtraButton24, QStringLiteral("ExtraButton24")},

};


=======
>>>>>>> development
Run Code Online (Sandbox Code Playgroud)

===和之间什么都没有时,这是如何发生冲突的>>>

git merge-conflict-resolution git-merge-conflict

1
推荐指数
1
解决办法
54
查看次数

如何使用 git 获取冲突文件的共同祖先

我合并了 2 个分支并发生了冲突。其中一个简直是一团糟,因为它在一个分支(B1)上被强烈重构。但是,我希望另一个分支 (B2) 包含一个简单的更改,不幸的是,该更改影响了许多行。

所以我认为最简单的合并方法是保留 B1,并重新执行 B2 上所做的更改。但在开始之前我想确定 B2 上有哪些变化,以确保我不会忘记任何事情。

为此,

  • 我想知道两个分支之间该文件的最新共同祖先提交
  • 理想情况下,我想在当前的“冲突合并”情况下执行此操作,而无需结账

git git-merge-conflict

1
推荐指数
1
解决办法
913
查看次数

奇怪的 git 合并?

我是 git 的新手,所以这对其他人来说似乎很简单,我只是不理解。

我正准备与其他 1 位朋友开始一个项目,我们决定使用 git 作为我们的版本控制系统,所以我们一直在运行测试以了解它是如何工作的。以下是我们迄今为止测试过的内容以及我们遇到的问题:

我们有3个分店

  • 掌握
  • 我的名字
  • 朋友的名字

可以,然后呢:

  1. 在创建其他 2 个分支之前,我直接在 master 中创建了一个 test.txt 文件,并将 txt 留空。
  2. 我们创建了其他 2 个分支,然后在没有其他行的情况下检查我的分支在第 1 行写入“Test 1”,然后提交并将其与 master 合并。
  3. 我的朋友签出他的分支并在第 1 行写入“Test 2”,在第 3 行写入“Hotfix”,然后他提交并与 master 合并并收到合并错误,因为第 1 行的 1 已更改为 2,并且因为 Hotfix加入。

与我们正在运行的测试相比,这稍微简化了一点,但是当进行如此简单的更改时,git 真的不够聪明以识别差异吗?我可以看到它询问第 1 行是否应该有 1 或 2,但为什么它会抱怨在新行上添加了修补程序?

我认为这并不重要,但我们已经在 Windows 的 Bash CLI、Linux 的 Bash 直接、桌面的 Github、Gitkraken 和 Gmaster 中尝试了相同的测试,结果都相同。

编辑,为了清楚起见,这里读出了我在终端中所做的事情:我解释了我在提交消息中所做的事情,虽然我不知道如何从 bash 终端显示合并冲突,但这里是冲突的屏幕截图它在 vscode 中打印:https://imgur.com/a/Yd6EXx2

另外,为了更清楚,创建 .txt 时,有 1 行,我在两个分支的预创建行上放置了 Test(此处为数字),对于朋友分支,我创建了第 2 行和第 3 行,并放置了 …

git git-merge git-merge-conflict

1
推荐指数
1
解决办法
69
查看次数

git rebase 与“我们的”合并策略提示 rebase --Continue 一次又一次

这是我面临的问题

我从该分支创建了一个功能分支master。我在一个功能分支上进行了大量工作,它比主分支提前了 80 次提交。在这些提交中,我多次编辑了一些文件。几天后,有人在主分支上推送了几个提交,因此由于合并冲突,功能分支的拉取请求无法合并。

我尝试变基来掌握并解决合并冲突,但之后冲突越来越多git rebase --continue

govi@falcon:/home/my_user/project/ (feature/xyz): git rebase master
govi@falcon:/home/my_user/project/ (feature/xyz | REBASE 32/85):
Run Code Online (Sandbox Code Playgroud)

对于任何合并冲突,我想选择我的更改。所以我尝试了ours递归模式下的冲突解决策略。现在 git 不强迫我解决任何冲突,但它要求我执行git rebase --continues 近 80 次。

govi@falcon:/home/my_user/project/ (feature/xyz): git rebase master -s recursive -X ours
govi@falcon:/home/my_user/project/ (feature/xyz | REBASE-i 1/85)
Last command done (1 command done):
     pick db2511c Modify file
Next command to do (1 remaining command):
     pick d1c2037 Modify file one more time
Run Code Online (Sandbox Code Playgroud)

在上述情况下,有没有更好的方法来解决合并冲突?或者也许是更好的变基方法?

PS:我们不允许重置master分支。我知道简单的方法是{reset, stash, rebase, pop}在功能分支上执行,但 PR 已经在进行中。

git git-merge-conflict

1
推荐指数
1
解决办法
2072
查看次数

在重新排序历史记录时避免交互式变基中的合并冲突

我有一个文件 myfile.txt

Line one
Line two
Line four
Run Code Online (Sandbox Code Playgroud)

其中每一行都已添加到单独的提交中。

我编辑文件以添加“缺失”行,因此文件现在是

Line one
Line two
Line three
Line four
Run Code Online (Sandbox Code Playgroud)

此 bash 脚本设置存储库:

#!/bin/bash

mkdir -p ~/testrepo
cd ~/testrepo || exit
git init

echo 'Line one' >> myfile.txt
git add myfile.txt
git commit -m 'First commit' 

echo 'Line two' >> myfile.txt
git commit -m 'Second Commit' myfile.txt

echo 'Line four' >> myfile.txt
git commit -m 'Third commit' myfile.txt

sed -i '/Line two/a Line three' myfile.txt
git commit --fixup=HEAD^ myfile.txt
Run Code Online (Sandbox Code Playgroud)

历史是这样的

$ git …
Run Code Online (Sandbox Code Playgroud)

git rebase git-merge-conflict

1
推荐指数
1
解决办法
344
查看次数

git pull -X他们的本地大师仍然有冲突

我想接受所有远程(他们的)修改,而不需要任何手动解决冲突.但是我仍然会在没有自动解决方案的情

$ git merge -s recursive -X theirs local/master

CONFLICT (rename/delete): rcS.d/S08kmod deleted in HEAD and renamed in local/master. Version local/master of rcS.d/S08kmod left in tree.
Auto-merging php5/cli/conf.d/20-xdebug.ini
CONFLICT (add/add): Merge conflict in php5/cli/conf.d/20-xdebug.ini
Auto-merging apt/sources.list
CONFLICT (rename/rename): Rename "apache2/sites-available/default-ssl"->"apache2/sites-available/default-ssl.conf.conf" in branch "HEAD" rename "apache2/sites-available/default-ssl"->"apache2/sites-available/default-ssl.conf" in "local/master"
Run Code Online (Sandbox Code Playgroud)

使用拉:

$ git pull local master
From ssh://192.168.1.101/etc
 * branch            master     -> FETCH_HEAD
warning: Cannot merge binary files: console-setup/cached_UTF-8_del.kmap.gz (HEAD vs. ada82813d27e5bef846ee086d07a87a82cfbb020)
CONFLICT (rename/delete): rcS.d/S08kmod deleted in HEAD and renamed in ada82813d27e5bef846ee086d07a87a82cfbb020. Version …
Run Code Online (Sandbox Code Playgroud)

git git-merge-conflict

0
推荐指数
1
解决办法
557
查看次数

吉特为无法挽回的灾难准备了食谱?

使用GIT似乎就像在玩一种新的国际象棋,没人真正知道规则。这是我所做的,请让我知道为什么这么快就出错了。

我有一个主叉子/仓库和我的个人叉子。

git clone https://github.com/myfork/project.git
cd project
git submodule update
git checkout -b newbranch
git remote add upstream https://github.com/CompanyX/project.git
git fetch upstream  # <- hoping to update my fork
git pull upstream mainbranch # want the latest stuff from upstream
# Result: 100's of modified files, deleted files, and even merge conflicts... unrecoverable.
Run Code Online (Sandbox Code Playgroud)

我已经看过几次了。如果在从主叉子更新叉子之前在叉子中创建分支,则叉子和主叉子之间的差异将导致合并冲突,最终无法解决。

我是在做错事还是在冒危险?

如果不是某些东西的副本,那么叉子到底是什么?是 但在git的另一种名不副实的任期?

git git-merge git-fork git-merge-conflict

-1
推荐指数
1
解决办法
73
查看次数