关于Git,已吐血

先说说git常见的操作指令吧,最熟悉的就是提交代码了

  1. 查看本地差异:git status
  2. 添加代码到暂存区:git add 代码
  3. 提交代码:git commit -m '描述'
  4. 推送至远程分支: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看着简单,实则处处是坑,提交代码出问题了,那必须得回滚啊,再说说回滚操作吧

  1. 撤销add操作:git reset
  2. 撤销commit操作:git reset --soft

(保留源码,只回退commit信息到某个版本,不涉及index的回退,如果还需要提交,直接commit即可)

  1. 撤销commit和add操作:git reset --mixed

(会保留源码,只是将git commit和index信息回退到了某个版本

git reset默认是--mixed模式,git reset --mixed等价于git reset)

  1. 撤销commit和add操作,并将本地版本回退到上一版本:git reset –hard

(源码也会回退到某个版本,commit和index都会回退到某个版本)

  1. reset和revert的用法:
    1. reset: push前
    2. revert: push后
    3. 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操作其实是用版本库替换工作区,所以比较常用,一般用于撤回本地操作)

喜欢的小伙伴请关注博主的公众号【细说架构】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值