GIT代码暂存

需求:

很多时候开发一个需求就会拉一个新分支,对完成的需求有一个清晰的记录,有利于需求的管理与维护,也有利于几个需求同时进行

这样通常会有一个问题:当你新需求开发到一半时,上个需求有改变,需要你去完成后再回来接着开发,但是新开发的需求又不想提交

解决方法:

方法1:(不推荐,只能一个分支进行操作)

先commit代码,切换分支完成修改后,在回来撤销commit,回到之前状态

1:正常流程的commit代码,不push

2:撤销 git commit

git reset --soft HEAD^ (ps:如果控制台出现More?,则将命令改成 git reset --soft HEAD^^即可)

这样就成功的撤销了你的commit

注意,仅仅是撤回commit操作,你写的代码仍然保留。

如果不撤销commit,接着开发,再commit新的进度,在push的时候会push上两条commit的记录,很不优雅

方法2:(推荐,可以不同分支进行操作)

这也适用于,当你开发一个需求开发到一半的时候发现,弄错分支了,需要当前分支回到change之前的状态,在新分支上恢复你开发的内容

git stash:

暂存代码

它会保存当前工作进度,会把暂存区和工作区的改动保存到一个未完结变更的堆栈中;执行完这个命令后,在运行 git status命令,就会发现当前是一个干净的工作区,没有任何改动。

git stash 是本地的,不会上传到服务器上;

新增的文件,直接执行stash是不会被存储的

没有在git 版本控制中的文件,是不能被git stash 存起来的。先执行下git add 加到git版本控制中,然后再git stash就可以了(新增文件时直接add就可以)

操作演示: 

idea上操作git stash:

填写暂存信息:

satsh之后分支会恢复到开发之前的状态;

恢复暂存:

切换分支解决完问题后,恢复暂存:

暂存区,会有你所有的暂存信息,选择要恢复的暂存信息:

如上所示,你在不同分支上的stash都会显示出来,所以也适用于,当你开发一个需求开发到一半的时候发现,弄错分支了,需要当前分支回到change之前的状态,在新分支上恢复你开发的内容

删除不需要的stash信息:(下面是错误操作,切勿模仿)

结果全部clear掉了

git stash clear了,找回误删的stash:

因为stash也有对应的栈缓存用来保存log,所以可以通过以下命令查出

git log --graph --oneline --decorate  $( git fsck --no-reflog | awk '/dangling commit/ {print $3}' )

tips:这个命令只能在git bash中使用,否则无法识别awk;只能执行前面一半的命令,查出提交记录:

在git bash中使用:  

找到你要恢复的stash

git stash apply +编号

 

这个stash的内容会直接恢复到工作区,并且是未提交的状态

正确的删掉不需要的暂存stash:

drop才是删除一条stash

命令操作:

快捷键操作太危险,还是命令操作安全:

git stash list

 

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

admiraldeworm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值