git add 撤销_Git真的操作简单吗?吐血

前言

Git想必大家都不陌生,当下最流行的版本控制工具,都觉得它好用、不用连网、操作简单、分布式等等,听着像那么回事,可是,在正式开发环境中真有那么简单吗?进来看看

NEWS敲黑板啦

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

    1.查看本地差异:git status

    2.添加代码到暂存区:git add 代码

    3.提交代码:git commit -m '描述'

    4.推送至远程分支:git push 远程分支

说的这几句,是个程序员都懂,关键是,真实开发环境要有这么简单那就狗年大吉了啊,小编今天就差点死在测试平台上,感觉时间一下午的时间都浪费在提交代码上很不值得,那剩下的几分钟,主要讲讲我今天在Git上踩过的坑以及自己对Git一点小总结吧

37689e3353cb7618e5d116ef7bfc1667.gif

    首先新建本地分支的事吧,新建分支,必须在本地master新建,这样新建的分支都是基于本地maser的代码,是不是觉得非常ok了,坑就坑在这里,你千万别把本地的master弄“脏”了,举个我今天手残的例子,你把本地修改过的代码不小心合并到了master,(本来是合并masterA,不小心将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即可)

3.撤销commitadd操作:git reset --mixed

(会保留源码,只是将git commit和index信息回退到了某个版本 git reset默认是--mixed模式,git reset --mixed等价于git reset)

4.撤销commitadd操作,并将本地版本回退到上一版本:git     reset –hard

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

5.reset和revert的用法:

    a.reset: push前

    b.revert: push后:git revert  回滚到置顶的版本

202da58943383fcb691b9edb049047c9.gif

既然说到这里了,在分享几个小众而个人觉得有用的git指令

删除分支: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操作其实是用版本库替换工作区,所以比较常用,一般用于撤回本地操作)

3d36061b14bc2cbac120e8b22a250674.gif

☞ 华为收入超过阿里腾讯总和!等等,先把鸿蒙说清楚!

☞ 三次创业,三次跨界,这次凭十万行核心C代码登上 GitHub Top 1!

☞ 中国第一程序员,微软得不到他就要毁了他!

653900be84996e805a90860a56e4cff0.png 你点的每个“在看”,我都认真当成了喜欢
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值