标签: merge-conflict-resolution

Cherrypick提交订单

这可能是一个天真的git问题,但这里是:

在执行pull-request之前,我通常会从上游的最新提交创建一个新分支,然后从我的开发分支中挑选重要的提交.然后从我的新分支向远程存储库发出pull-request请求.

但我讨厌合并冲突(尽管git mergetool在发生时会有很大的帮助).我怀疑这些冲突是由樱桃的顺序引起的.我通常会从最旧的提交到最新提交的一系列提交.这是正确的方法吗?或者提交命令对git无关紧要?

在挑选樱桃时,是否有其他技巧可以最大限度地减少合并冲突?

git merge-conflict-resolution git-cherry-pick

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

我可以在 Git 中只合并非冲突的更改吗?

我怎样才能简单地(例如在一个命令中?)在 Git 中合并,将冲突文件的状态保持在当前分支中,而不像在他们/我们的选项中那样单独指定每个文件?

git checkout master
git merge stable --some-option-to-keep-files-?
Run Code Online (Sandbox Code Playgroud)

git git-merge merge-conflict-resolution

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

找到没有p4解析的diff块

我想设计一个shell脚本,根据'p4 resolve'显示的diff块来做出解决决定

我的脚本的当前状态是这样的 -

p4 integ -b @ = CL#这将打开我默认CL中的文件.

p4解决#It现在将逐个解析在我的默认CL中打开的文件

现在我的问题是,通过p4解析,我无法将其输出重定向到某个文件和/或读取diff块,因为它显示一个文件的diff块并等待用户输入以解决决策.我希望脚本能够采取非常明显的解决方案.

那么,有没有办法在我的默认CL中找到文件的diff块?那么,无论如何我可以阅读这些差异块并做出明显的解决决定吗?

perforce merge-conflict-resolution

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

处理从开发合并到母版时的冲突

我开始了一个工作流程,我的目标是在一个development分支中完成所有新功能,而该master分支将只用于生产就绪代码。

执行以下操作后:

git checkout master
git merge staging
Run Code Online (Sandbox Code Playgroud)

我收到了一堆看起来像这样的冲突:

CONFLICT (rename/add): Rename app/assets/stylesheets/mobile.css->app/assets/stylesheets/application.css in HEAD. app/...
CONFLICT (modify/delete): app/views/organizers/mobile.html.erb deleted in HEAD and modified in staging. Version stagi...
CONFLICT (modify/delete): app/views/events/mobile.html.erb deleted in HEAD and modified in staging. Version staging of app/v...
Run Code Online (Sandbox Code Playgroud)

当我现在用谷歌搜索这个时,我读到的只是关于审查每个文件、解决冲突和提交更改。但我认为做这一切没有任何意义,因为我知道代码并且它只是相同代码集的进步。

我怎样才能在合并完成的改变stagingmaster以简单的方式,而无需审查和解决每一个变化?

git merge conflict git-merge merge-conflict-resolution

5
推荐指数
2
解决办法
7602
查看次数

在可能的情况下自动解决 git 冲突

我们有一个包含 50 多个项目的 .NET 解决方案文件,我们经常遇到这样的情况:两个人将进行相对较小的更改(例如更新 Nuget 包或重命名文件),这会影响所有 50项目文件。

这意味着任何时候合并这些分支时,所有 50 个文件都会发生冲突 - 但是如果您在任何合并工具中打开它们,它将能够自动解决它们。这意味着我在合并中没有实际工作要做,但我必须单击每个文件,等待它在 Beyond Compare 中打开,然后单击保存,然后单击关闭。单击下一个文件,单击保存,单击关闭...重复 55 次。

我的问题是:有什么方法可以让 Git 在遇到冲突文件时尝试使用合并工具自动解决它们?

更新:希望这会增加一些清晰度:我必须一个一个解决每个冲突,但是由于我的合并工具可以自动解决每个冲突,是否有某种批处理操作或合并命令的选项,我可以称呼?

git merge merge-conflict-resolution

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

git checkout HEAD-文件名和git checkout-文件名之间的区别

让我们从一种情况开始。

  1. 我进行了一些更改(5个文件) git stash
  2. 更改一些文件
  3. 提交更改 git commit -m "Commit message"
  4. 从存储中获取更改 git stash apply

由于提交,我在2个文件中收到合并冲突。我不再需要这2个文件中的更改,因此我尝试还原这些更改。

我做了 git checkout -- background.js

它因错误而失败

错误:路径“ src / background / background.js”未合并

但是后来我读了这篇SO帖子并尝试

git checkout HEAD -- background.js
Run Code Online (Sandbox Code Playgroud)

它可以成功工作。这两个文件都发生在我身上。我想了解两者之间的区别

git checkout -- filegit checkout HEAD -- file

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

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

Git merge - 缺少冲突标记

使用Windows 7,git 1.9.5.msysgit.1

我读过的关于Git中合并冲突的教程表明,合并失败会导致冲突标记被放置在文件中有问题的位置.我似乎无法实现这一点.以下是新存储库的示例工作流:

git init
notepad file1.txt    #make some edits
git add .
git commit -m "msg"

git branch mybranch
git checkout mybranch
notepad file1.txt #make some edits on line 3
git add .
git commit -m "msg"

git checkout master
notepad file1.txt #make a conflicting edit on line 3
git add .
git commit -m "msg"
git merge mybranch
#error: 'merge' is not possible because you have unmerged files

notepad file1.txt
Run Code Online (Sandbox Code Playgroud)

最后一次打开file1.txt之后,我期待在第3行看到标志>>>>>>>>和==========冲突标记......但是那里什么都没有,只是主分支中显示的文件的文本.我的全局.gitconfig文件:

[user]
    name = Andrew Barger
[core] …
Run Code Online (Sandbox Code Playgroud)

git-merge merge-conflict-resolution

5
推荐指数
2
解决办法
2795
查看次数

如果我解决冲突它会改变Git责备吗?

我试图找出合并冲突是否导致错误,但我遇到了困难,因为我不清楚冲突解决方案是如何影响的git blame.

假设我在master中有一个文件:

a();
b();
c();
Run Code Online (Sandbox Code Playgroud)

我在master中修改它:

a();
d();
c();
Run Code Online (Sandbox Code Playgroud)

但同事也是如此,他们在另一个分支中以不同的方式对其进行修改,然后将它们合并到master中:

a();
e();
c();
Run Code Online (Sandbox Code Playgroud)

可以解决冲突会影响责任吗?换句话说,如果我的同事通过我的版本来解决冲突:

a();
d();
c();
Run Code Online (Sandbox Code Playgroud)

git blamed();线,谁就会被指责:我和我的同事?

同样地,让我们说git感到困惑,并认为第一行和第二行都是冲突的:

<<<<
a();
d();
====
a();
e();
>>>>
Run Code Online (Sandbox Code Playgroud)

如果我的同事用他们的版本解决冲突:

a();
e();
c();
Run Code Online (Sandbox Code Playgroud)

我是git blamea();条线路,我(该线路的原作者)会受到指责,还是我的同事(即使他们没有改变它们,最后"触及"它)会受到指责?

git version-control merge-conflict-resolution git-blame

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

git合并冲突说删除了,但事实并非如此

我正在尝试解决git merge(git版本2.9)中的冲突 - 冲突是建议删除"其他"分支中的文件,但事实并非如此.这是一个(相当)简短的可重复配方:

cd /some/new/folder/somewhere
git init

echo 'a on master' > a
git add a
git commit -m 'add a on master'

mkdir f
git mv a f/
git commit -m 'move a to f on master'

git checkout -b hotfix HEAD^

echo 'new content a on hotfix' > a
mkdir f
git add a
git mv a f/
git commit -m 'move a to f on hotfix with different content'

git checkout master
git merge …
Run Code Online (Sandbox Code Playgroud)

git merge-conflict-resolution

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

git rebase - 继续与新提交

如果我遇到合并错误,我通常会解决合并错误,再次添加我的文件并 git rebase --continue
继续使用拉动和推送.

现在我有时间深入了解git如何工作并想出来,应该可以创建一个新的提交.我认为,这可能是一个好主意,以澄清存在一些合并错误,并且它们是手动解决的.

建议使用哪一个,它们的优点和缺点是什么?提前致谢!

git git-merge git-rebase git-commit merge-conflict-resolution

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