我克隆了一个存储库,然后几个小时后,我创建了“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 -> origin/akpm-base (forced update)
37504a3b..8ba4caf stable -> origin/stable
* [new tag] next-20140918 -> next-20140918
Performing inexact rename detection: 100% (318500/318500), done.
Auto-merging tools/testing/selftests/rcutorture/doc/TREE_RCU-kconfig.txt
CONFLICT (content): Merge conflict in tools/testing/selftests/rcutorture/doc/TREE_RCU-kconfig.txt
Auto-merging tools/testing/selftests/rcutorture/configs/rcu/TREE03
Auto-merging localversion-next
CONFLICT (add/add): Merge conflict in localversion-next
Auto-merging kernel/rcu/tree.c
CONFLICT (content): Merge conflict in kernel/rcu/tree.c
Auto-merging drivers/target/target_core_fabric_configfs.c
CONFLICT (content): Merge conflict in drivers/target/target_core_fabric_configfs.c
Auto-merging drivers/target/iscsi/iscsi_target_util.c
Auto-merging drivers/hwmon/Kconfig
Auto-merging drivers/gpu/drm/i915/intel_ringbuffer.c
Auto-merging drivers/gpu/drm/i915/intel_drv.h
Auto-merging drivers/gpu/drm/i915/intel_dp.c
Auto-merging drivers/gpu/drm/i915/intel_display.c
Auto-merging drivers/gpu/drm/i915/i915_gem.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/i915_gem.c
Auto-merging drivers/clk/rockchip/clk-rk3288.c
Auto-merging arch/mips/include/asm/topology.h
Auto-merging arch/m68k/coldfire/m54xx.c
Auto-merging Next/quilt-import.log
CONFLICT (add/add): Merge conflict in Next/quilt-import.log
Auto-merging Next/merge.log
CONFLICT (add/add): Merge conflict in Next/merge.log
Auto-merging Next/SHA1s
CONFLICT (add/add): Merge conflict in Next/SHA1s
warning: inexact rename detection was skipped due to too many files.
warning: you may want to set your merge.renamelimit variable to at least 5040 and retry the command.
Automatic merge failed; fix conflicts and then commit the result.
git status
On branch master
Your branch and 'origin/master' have diverged,
and have 236 and 347 different commits each, respectively.
(use "git pull" to merge the remote branch into yours)
You have unmerged paths.
(fix conflicts and run "git commit")
Changes to be committed:
...
Unmerged paths:
(use "git add <file>..." to mark resolution)
both added: Next/SHA1s
both added: Next/merge.log
both added: Next/quilt-import.log
both modified: drivers/gpu/drm/i915/i915_gem.c
both modified: drivers/target/target_core_fabric_configfs.c
both modified: kernel/rcu/tree.c
both added: localversion-next
both modified: tools/testing/selftests/rcutorture/doc/TREE_RCU-kconfig.txt
首先,我每天都会使用一些预防措施......
我学会了使用git merge --ff-only
当我不期望任何实际合并时。我看到也可以使用git pull --ff-only
但我更经常使用git pull --rebase
因此它不会创建任何合并提交,而是在上游之上重播我的本地更改(如果有)。不过,我无法帮助解释,因为我不知道 linux-next 的规则。
发生合并冲突的唯一原因是合并到不同的分支。如果您的分支没有更改,人们会期望进行一次干净的快进合并。符合您的描述的唯一解释是远程不再将您的提交包含在其历史记录中,这意味着上游有重写的历史记录。这在某些工作流程中很常见,其中已发布的分支只是指向一组较大更改的最新提交的指针。我没有具体信息linux-下一个, 尽管。
危险区域:出现这种情况时,可以使用以下方式获取上游数据:git fetch
然后使用更新您的分支引用git reset --hard origin/master
(代替origin and master与实际的远程和分支名称)。但请确保没有任何您想要保存的更改,因为这是破坏性操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)