当咱们向远程git服务器提交某一个文件的修改时,恰巧这个文件相同的修改地方其余人也有修改,而且已经提交到服务器,这时冲突就产生了. 一般,当咱们合并两个相同的地方都有修改的分支时,都会产生冲突.git
出现冲突时git不知道如何自动合并,须要咱们解决冲突手动合并. 若是是文本文件,git会在有冲突的地方做上标记(如 HEAD >>> ==== <<< HASH_ID等),标记哪些是当前分支的修改,哪些是其余分支的修改.参考这些标记,解决冲突比较简单.服务器
若是二进制文件发生冲突,不方便查看git插入的冲突标记, 解决比较棘手,一般最简单的解决方法是提早沟通好,相同修改的地方二选一.
git checkout FILE --ours [ --theirs ]
markdown
–ours 表示检出当前分支,即保存当前分支的改动,丢弃另外分支的改动.
–theirs 表示检出另外分支, 即保存另外分支的改动,丢弃当前分支的改动.spa
举个栗子:
有分支A和B, 当前咱们在分支A上, 须要把分支B合并到分支A, HashMap.c文件发生冲突了.
git checkout HashMap.c –ours 表示冲突的地方采用A分支上的修改,丢弃B分支上的修改.
git checkout HashMap.c –theirs 表示冲突的地方采用B分支上的修改,丢弃A分支上的修改..net
解决完冲突后,就能够像往常同样 git add git commit了.code