相关疑难解决方法(0)

没有做任何更改时Git合并冲突

我克隆了一个回购,然后,几个小时后,我做了'git pull'.但是出现了合并冲突,我不明白为什么,因为我没有对克隆回购进行任何改动.

git status
On branch master
Your branch is up-to-date with 'origin/master'.

nothing to commit, working directory clean


git pull
remote: Counting objects: 6211, done.
remote: Compressing objects: 100% (849/849), done.
remote: Total 3237 (delta 2756), reused 2846 (delta 2371)
Receiving objects: 100% (3237/3237), 865.51 KiB | 152.00 KiB/s, done.
Resolving deltas: 100% (2756/2756), completed with 867 local objects.
From git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next
 + 76c2c6d...4d046e9 master     -> origin/master  (forced update)
 + 1e13928...003e6ba akpm       -> origin/akpm  (forced update)
 + 9d1d11d...8bcfe39 akpm-base  -> …
Run Code Online (Sandbox Code Playgroud)

git git-merge

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

“git merge --squash”的正确用例是什么?

有些人喜欢git merge --squash的原因如下:

压缩到单个提交让您有机会清理杂乱的 WIP 提交,并为您正在合并的更改提供一个很好的理由。

https://coderwall.com/p/qkrmjq/git-merge-squash

但是,我认为有一些缺点超出了制作干净历史的优点。

  1. git merge --squash产生一个非合并提交。因此,Git 不会将您正在合并的提交识别为合并基础。当 1) 在分支 X 上将 A 更改为 B,2)git merge --squash从分支 X 到分支 Y,以及 3) 在分支 X 上将 B 更改为 A(还原),以及 4) 将 X 合并到 Y 时,这会导致不需要的合并结果。在此处输入图片说明 在第 4 步之后,在分支 Y 上,从 A 到 B 的更改不会恢复。这里,这是 3 路合并,因此比较从分支 X 到合并基的差异和从分支 Y 到合并基的另一个差异。前者包括没有变化,后者包括从A到B的变化,所以合并结果包括从A到B的变化。

  2. 提交作者被覆盖,这会丢弃贡献。git merge --squash产生一个名为 who did 的新提交git merge --squash。当然,提交内容来自原始提交。这听起来像是在窃取贡献。这成为https://github.com/Microsoft/winfile/pull/42#issuecomment-380681627 中的一个问题

什么是正确的用例git merge --squash

git merge squash 3-way-merge merge-base

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

仅由一个分支更改的文件发生 Git 合并冲突

我在http://github.com/ohcibi/prezto有一个 zprezto 的分支

重现我的问题:

  1. git clone http://github.com/ohcibi/prezto
  2. cd prezto
  3. git checkout ohcibi(我有一个分支叫这个名字,这里没有错别字!)
  4. git merge master
  5. 显示一堆冲突

提交日志显示,ohcibi自 4 月 26 日左右上次合并提交以来,只有 3 个提交是新的。所有 3 次提交都不会触及任何冲突的文件(除了一个预计会发生冲突的文件)。

但为什么该合并与其他文件甚至还有冲突呢.gitmodules

注意:我不需要帮助解决合并冲突!我知道如何做到这一点,并且我故意没有将“添加”git-merge-conflict-resolution-tag到该问题,因为这将是一个错误的标签(所以它没有丢失,不要添加它!)。我想知道为什么这些冲突首先发生(假设冲突文件在两个分支中都没有更改,据我所知,这是合并冲突的常见原因)。

git git-merge

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

标签 统计

git ×3

git-merge ×2

3-way-merge ×1

merge ×1

merge-base ×1

squash ×1