开始新的开发或者提交代码之前,都需要执行 git pull 以拉取最新的代码。但是执行这个命令往往会因为代码冲突导致错误,此时命令行一般会出现一些error提示:

 

此时可以使用 git stash 命令,将本地的各种修改缓存起来。此时如果用git status查看,会发现本地没有

需要提交的修改,因为已经恢复到了本次修改之前的状态,此时再次执行 git pull 命令,代码就被成功的

拉取到本地。

然后执行 git stash pop 命令,将刚才缓存的修改给恢复出来。恢复的过程中,git会自动做代码的合并,

一些简单的修改一般能够自动merge,如果比较复杂的修改,则需要自己手动去merge。这种带有冲突的

代码文件,类似下面这种:

 

其中 <<< HEAD 和 ===== 之间的内容为本地的修改

===== 和 >>>>>> 084xxxx 之间的代码是远程代码库上已经提交的代码

手动merge之后,还需要执行 git add xxx(对应文件名) 将这个有冲突的文件,标记为“已解决”,

然后再正常的commit、push即可。

 

详情可以参考这个链接对应的文章:

https://www.cnblogs.com/huanyou/p/6654813.html

 

其中 <<< HEAD 和 ===== 之间的内容为本地的修改

===== 和 >>>>>> 084xxxx 之间的代码是远程代码库上已经提交的代码

手动merge之后,还需要执行 git add xxx(对应文件名) 将这个有冲突的文件,标记为“已解决”,

然后再正常的commit、push即可。

 

详情可以参考这个链接对应的文章:

https://www.cnblogs.com/huanyou/p/6654813.html

 

本地有修改和提交,如何强制用远程的库更新更新。我尝试过用git pull -f,总是提示 You have not concluded your merge. (MERGE_HEAD exists)。

我需要放弃本地的修改,用远程的库的内容就可以,应该如何做?傻傻地办法就是用心的目录重新clone一个,正确的做法是什么?

 

 

正确的做法应该是:

git fetch --all
git reset --hard origin/master

git fetch 只是下载远程的库的内容,不做任何的合并git reset 把HEAD指向刚刚下载的最新的版本

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐