git 过程中的冲突解决方法
开始新的开发或者提交代码之前,都需要执行 git pull 以拉取最新的代码。但是执行这个命令往往会因为代码冲突导致错误,此时命令行一般会出现一些error提示: 此时可以使用 git stash 命令,将本地的各种修改缓存起来。此时如果用git status查看,会发现本地没有需要提交的修改,因为已经恢复到了本次修改之前的状态,此时再次执行 git pull命令,代码就被成功...
开始新的开发或者提交代码之前,都需要执行 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指向刚刚下载的最新的版本
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)