问题出现:
小王在提交代码前执行git pull将代码拉取到最新,发现git 有如下提示,说明当前我们修改的内容与远端最新内容有冲突,需要我们先git commit提交代码或者git stash暂存代码之后才能进行pull,如何选择?
问题解决:
使用git commit :
-
小王进行了git add 和git commit 然后再次pull,由于团队另一个人和小王修改了同一个文件,出现了冲突,解决冲突后再次git add 和git commit ,然后顺利推送代码,我们来看一下提交记录:
可以看到,小王原本打算提交一次代码,被迫变成两次提交,且左侧提交记录呈现网状结构。
还有一种情况是,git commit之后,git pull没有出现冲突,但远端有过更新,git会自动进行merge操作,并自动生成一条merge记录:
使用git stash 解决问题:
在出现图1的提示之后,先进行git stash而不是git add +git commit:
1.执行git stash save '描述',将当前工作空间的修改暂存到本地
2.执行git pull将代码拉取到最新,由于我们的改动已经暂存,这里相当于没有改动,可以顺利拉取
3.执行git stash pop 弹出上次的暂存,如果暂存的内容与拉取的内容有冲突需要处理一下冲突
4.冲突处理完成后,执行git add . && git commit && git push进行提交
你会发现,这样的提交步骤,总是能够使提交记录只有一条,提交记录更加干净。