git使用高级教程
上2篇说了,git基本的和常用的操作,这一篇来讲一下git的高级操作
高级操作就是出现特殊情况的时候,才会用到的指令,所以要慎用,如果用错了,问题也很大
特殊情况1
我们发布的版本上线以后,出现问题,想立马回滚到发布之前的版本。
git reset <想要回到的commitId>
= git reset --soft <想要回到的commitId>
(--soft是默认的,加不加是一样的)
这个指令是把版本回退到指定的commitId
git log
查看提交的commitId,git log显示不完,光标显示在冒号的位置,按方向键上下翻,按q会退出
我们回退到指定id的版本,这个时候,回退的代码会被放到工作区间
有是变成红色的代码,git reset回退版本时,回退的代码是保留下来的,被放到工作区间,git reset --hard就是把回退的代码直接删除掉,不会保留下来,这个指令很危险,一般不用。
git push -f
把刚才reset以后的版本推到远程,也覆盖掉远程仓库的最新的2个提交,回退远程的版本, -f参数强制覆盖远程,这样就可以把线上的版本给回退了
git stash
把git的的未提交的代码,工作区间和暂存区中的代码,保存到Git的栈中,意思就是把我没写好的代码先放到一边,待会再用,因为你代码没提交,切分支是比较危险的,甚至不能切换分支的
他叫你先提交修改,但是我们没写好,不能提交,就可以使用git stash,把代码先放到一边,过会再使用,怎么查看保存到哪里了呢,怎么拿出来呢
git stash save '注释'
可以给stash加注释,清除存储的是什么代码
git stash pop [email protected]{0}
挑选任何指定stash弹出,而不是弹出最新的
git stash drop
删除最新的stash
git cherry-pick
挑选指定的commitid来合并
git merge 会把分支上的新提交都会合并到master主分支上,但是有的时候我们并不想合并所有的新提交,而是挑选几个commitid合并
我们现在只想把test2和test4的提交合并到master上
git cherry-pick
好,今天的高级教程就讲到这里,git的教程基本就讲完了,还有一些生僻 的指令,如果自己有需要,可以自己学习
摘自微信公众号