git使用(三)
git各阶段回退操作命令
git checkout –
当在工作区将代码修改完,没有git add,发现修改不对,想要回到原来的代码,就可以使用git checkout – 将代码还原回来。git checkout的本质就是将本地仓库中的代码覆盖掉在工作区的更改代码。
git reset HEAD
当将工作区的代码更改提交到暂存区,想要将代码在暂存区的更改还原。可以使用git reset HEAD 命令将暂存区某个代码的更改还原。
git reset --hard
当将暂存区的更改提交到本地仓库,想要还原本地仓库的,可以使用git reset --hard + commitID 将本地仓库还原到commitID为9544的版并将工作区的更改也还原。
git reflog
git reflog 查看当前分支的本地仓库的历史变化。与git log不同,git log显示提交本地仓库的日志,不会显示本地仓库的还原变换,git reflog 会显示本地仓库的还原变化记录。
不小心将本地仓库中的错误更改提交到远程仓库中
git push -f
如何将远程仓库中的更改还原,可以使用git reset --hard命令将本地仓库中的更改还原,再使用git push -f 命令将本地仓库的更改提交到远程仓库,就完成了远程仓库的还原。
git diff HEAD –
git diff HEAD --查看工作区代码和本地仓库的区别。将冒泡排序优化,查看优化后的代码和本地仓库代码的区别
git推送代码冲突解决方案
两个人对不同代码段做修改
当两个人将同一版本的远程仓库git pull拉取到本地中,对不同代码段做修改。张三对代码段一做修改,李四对代码段二做修改,其中一人先将代码git push提交到远程仓库,另一人再将代码git push提交到远程仓库就会失败。
为什么失败呢,若原来的远程仓库有新的提交,需要将新的提交git pull下来和本地仓库的代码版本合并,才能git push。如果强行提交会导致,别人的提交更改被覆盖。
所以若git push失败说明有其他人对原来的远程仓库有新提交,为了不覆盖别人的更改,我们需要git pull将新提交拉下来和本地仓库版本合并,再git push将合并后的更改提交到远程仓库。
两个人对相同代码段做修改
当两个人将同一版本的远程仓库git pull到本地,两人都对同一段代码做修改,其中一人代码git push提交到远程仓库,另一人再将代码git push提交到远程仓库就会失败。需要git pull将远程仓库中的新提交拉取到本地和本地的代码合并,合并后的代码不能git push,代码有冲突,合并后每段代码都有commitID,commitID就是标识冲突,需要将commitID删去,将冲突解决,将两端代码合并或者注释其中一个保留一个,再git pull就可以提交到远程仓库中了。