这种情况下,如何保留本地的修改同时又把远程的合并过来呢?
首先取决于你是否想要保存本地修改。
是
别急我们有如下三部曲
git stash
git pull origin master
git stash pop
git stash
的时候会把你本地快照,然后git pull
就不会阻止你了,pull完之后这时你的代码并没有保留你的修改。惊了! 别急,我们之前好像做了什么?
STASH
这时候执行git stash pop
你去本地看会发现发生冲突的本地修改还在,这时候你该commit
push
啥的就悉听尊便了
否
既然不想保留本地的修改,那好办。直接将本地的状态恢复到上一个commit id 。然后用远程的代码直接覆盖本地就好了
git reset --hard
git pull origin master
git stash
: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。
git stash pop
: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。
git stash list
: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
git stash clear
: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。