ano*_*ous 42 git merge conflict commit partial
我试图将上游更改合并到我的分支中时遇到冲突,我不知道如何解决它们.
我创建了自己的fork.我克隆了它.我对我的分支,承诺和推送的分支进行了更改.但后来主叉更新了,我尝试通过合并上游来更新我自己的fork:
$ cd repo-name
$ git remote add upstream git://github.com/username/repo-name.git
$ git fetch upstream
$ git merge upstream/master
Run Code Online (Sandbox Code Playgroud)
合并说文件存在一些问题,自动合并不起作用.它告诉我自己修复并重新合并.所以我实际上去了主叉的GitHub上的(上游)存储库,并将新文件的所有代码复制到我的fork上的文件中,并尝试再次合并.然后,git给了我这个错误:
致命:'merge'是不可能的,因为你有未合并的文件.请在工作树中修复它们,然后根据需要使用'git add/rm'标记解析并进行提交,或使用'git commit -a'.
我有什么争论吗?我做了些蠢事吗?"未合并的文件"是什么意思?合并文件的合并不是全部吗?在合并之前,我是否必须提交更改?
Let*_*_Be 34
您所看到的意味着自动合并无法解决文件中的冲突.您需要手动解决这些冲突.跑git mergetool或git gui.
cba*_*are 12
"git merge"命令尝试将来自另一个分支的更改合并到当前分支上.如果合并是干净的,意味着没有冲突,它将提交.由于您的合并确实存在冲突,因此它没有提交.您需要解决冲突.
从上游仓库中提取副本是一种方法 - 通过接受上游仓库的版本.你可以使用"git checkout --theirs conflicting_file.txt"在git中做到这一点
编辑文件以使其成为您想要的形状是另一种方式.
一旦修复,你需要使用"git add conflicting_file.txt"然后提交添加.然后你的工作副本是干净的,准备好更多的黑客攻击.祝好运.
在Git中,有一些情况合并拒绝甚至开始以保护您的本地更改.这可能发生在两种情况:
您的存储库中的未提交更改与合并冲突.git将拒绝与以下消息合并:
error: Your local changes to the following files would be overwritten by merge: foo Please, commit your changes or stash them before you can merge. Aborting
然后你必须先提交更改(git commit -a或git add+ git commit),或者用它们存储它们git stash save.
您正处于一些未完成的合并操作中.例如,存在一些冲突
Auto-merging foo CONFLICT (content): Merge conflict in foo Automatic merge failed; fix conflicts and then commit the result.
并且你还没有完成解决冲突(通过编辑文件并将它们标记为已解析git add,或者使用某些图形合并工具git mergetool)并且没有创建最终合并提交git commit -a,或者中止合并git reset --hard(注意:这将丢弃所有你改变,你将失去解决冲突的工作!!!).
或者您刚刚运行第二git merge太快,或者使用git merge而不是git commit创建合并提交.
error: 'merge' is not possible because you have unmerged files. hint: Fix them up in the work tree, hint: and then use 'git add/rm ' as hint: appropriate to mark resolution and make a commit, hint: or use 'git commit -a'. fatal: Exiting because of an unresolved conflict.
解决冲突,如旧的Fun中所述,完成 Junio C Hamano 的合并文章,并最终确定合并git commit,或放弃合并,或将其隐藏起来.然后,如果您打算创建第二个合并,则可以执行此操作.
旁注:默认情况下,git-aware shell提示符显示您是否处于合并,rebase或应用补丁(git am操作)的过程中.您还可以将其配置为显示工作目录是否脏(与最新版本不同,即HEAD).