git pull
消除合并远程代码冲突
rebase操作不会生成新的节点,是将两个分支融合成一个线性的提交,这样可以线性的看到每一次提交,并且没有增加提交节点。
使用rebase 操作的话,会中断rebase,同时会提示去解决冲突,解决冲突后,将修改add后执行git rebase –continue
继续操作,或者git rebase –skip
忽略冲突。
git pull origin test --rebase
git rebase -continue
强制覆盖本地的代码
问题需求
在开发中使用Git的过程中,有时候会有一种需求,要从服务器拉取最新的状态,而本地进行了无关紧要的修改,这时候如果使用git pull命令,会提示本地有未缓存的修改。这时候就需要强制覆盖本地的改变。
解决方法
重要提示:如果您有任何本地更改,将会丢失。无论是否有--hard选项,任何未被推送的本地提交都将丢失。 如果您有任何未被Git跟踪的文件(例如上传的用户内容),这些文件将不会受到影响。 下面是正确的方法:
git fetch --all
然后,你有两个选择:
git reset --hard origin/master
或者如果你在其他分支上:
git reset --hard origin/<branch_name>
说明: git fetch从远程下载最新的,而不尝试合并或rebase任何东西。
然后git reset将主分支重置为您刚刚获取的内容。 --hard选项更改工作树中的所有文件以匹配origin/master中的文件
FAQ
链接
如何避免 git pull 时产生 'Merge branch 'master' of... 等类似操作 git pull --rebase的作用是什么,它与git pull有什么区别?