git 解决冲突
2020-02-13 本文已影响0人
卓三阳
我们进行git pull操作或者(git fetch+git merge)避免不了有时候会出现冲突,下面分2种情况解决冲突的方法。
1.本地已经commit
你本地已经进行了提交(git commit),直接git pull或者git fetch+git merge。
如果能merge,git会提示merge成功
如果不能自merge,git会提示merge失败,需要手动解决冲突:
(1)git status 查看冲突情况
(2)修改冲突
(3)git status 查看冲突解决情况
(4)git add .
(5)git commit -m '解决冲突的注释说明'
(6)git push origin master
2.本地未commit
2.1 通过git stash ---- 通常用这种方法
git stash
git pull or git merge
git stash pop
通过git stash将工作区恢复到上次提交的内容,同时备份本地所做的修改,之后就可以正常git pull了,git pull完成后,执行git stash pop将之前本地做的修改应用到当前工作区。
接下来diff或者log一下看看自动合并的情况,并作出相应的修改。
stash命令
git stash //备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。
git stash pop //从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。
git stash list //显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
git stash clear //清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。
2.2 放弃本地修改的改法且不可找回
git reset --hard
接下来就可以git pull 或者 git merge了