先说说git常见的操作指令吧,最熟悉的就是提交代码了
- 查看本地差异:git status
- 添加代码到暂存区:git add 代码
- 提交代码:git commit -m '描述'
- 推送至远程分支:git push 远程分支
说的这几句,是个程序员都懂,关键是,真实开发环境要有这么简单那就狗年大吉了啊,小编今天就差点死在测试平台上,剩下的几分钟,主要讲讲我今天踩过的坑以及自己对git的一点小总结吧
首先新建本地分支的事吧,新建分支,必须在本地master新建,这样新建的分支都是基于本地maser的代码,是不是觉得非常ok了,坑就坑在这里,你千万别把本地的master弄“脏”了,举个我今天手残的例子,你把本地修改过的代码不小心合并到了master,(本来是合并master到A,不小心将A合并到master了)这样一来你的本地master就被污染了,这是万万不行的,说白了,任何时候你都必须保证本地的master是正确的,可以不是最新,但必须是正确的,不是最新的可以拉(pull),要是被污染了,拉也拉不出来(pull),是不是很难受?这是为啥捏,因为这时候本地master比远程master超前一个版本,Git认为这就是你将要提交的代码,拉(pull)的时候必然不会覆盖本地master,也不会有任何错误信息提示给你,但是这样一来,你永远不会发现自己在一堆垃圾代码上迭代新功能。真要是遇见这种情况了怎么办:①reset自己的master②删除所有的代码,重新克隆(clone)
然后再说说提交代码的事吧,提交之前,务必啊,务必啊,先拉一下主干的代码,因为你永远不知道这几秒之内有几个损崽子在修改提交代码,修改与你无关的也就没事了,巧就巧在同时两人修改的是一个代码块,那肯定报冲突了啊,所以划重点,每次push之前一定要重新拉取主干代码,保证自己的代码是最新的并且和别人没有冲突,然后再推到(push)远程
再说说git stash这个东西吧,本意是:将当前分支的修改存放在暂缓去
使用场景:你本地分支A上修改了文件还不想commit,但是现在紧急需要和前端同学对接一下B分支,未提交还不能切换分支,那就只能将这些未提交的代码暂时挂起来:git stash (查看存储记录:stash list),这时候可以安安心心的去B分支工作了,工作了一半你又需要回到A分支,也可以将B中的零时文件 git stash挂起来,然后再回到A这个分支,git stash pop 就可将之前的文件pop出来,但是问题来了,你会发现这些文件里会有B分支上的内容,问啥捏?是这样的,git stash的时候会将这些记录放在栈中,栈是何方神圣?栈后进先出啊,git stash先出来的肯定是B中的内容啊,重点来了,git stash list查看存储记录,每条记录都有一个缓存序号,git stash pop +‘序号’,就OK了
这git看着简单,实则处处是坑,提交代码出问题了,那必须得回滚啊,再说说回滚操作吧
- 撤销add操作:git reset
- 撤销commit操作:git reset --soft
(保留源码,只回退commit信息到某个版本,不涉及index的回退,如果还需要提交,直接commit即可)
- 撤销commit和add操作:git reset --mixed
(会保留源码,只是将git commit和index信息回退到了某个版本
git reset默认是--mixed模式,git reset --mixed等价于git reset)
- 撤销commit和add操作,并将本地版本回退到上一版本:git reset –hard
(源码也会回退到某个版本,commit和index都会回退到某个版本)
- reset和revert的用法:
- reset: push前
- revert: push后
- git revert <commit_id..> 回滚到置顶的版本, 执行后需要git push
删除分支:git -d branch 分支
删除分支:git -D branch 分支(强制删除)
删除远程分支:git -D branch origin 分支
查看远程仓库:git remote -v
添加远程仓库:git remote add origin URL
更换远程仓库:git remote set -url origin URL
删除文件:rm test.txt
这只是在文件管理器中删除了文件,这样一来工作区和版本库就不一致了,git status会提示那些文件被删除了,现种方法:
①去版本库删除文件:git rm test.txt删掉,并且commit
②属于误删,回复即可:git checkout --test.txt(git checkout操作其实是用版本库替换工作区,所以比较常用,一般用于撤回本地操作)
喜欢的小伙伴请关注博主的公众号【细说架构】