1.git reset使用场景
git add.及git commit之后,代码提交到本地仓库。此时想回退代码,操作如下。
1.1 丢弃当前的修改,回退到之前的历史版本
先用
git log
查看历史的commit版本好 HEAD,然后
git reset --hard HEAD
此时你本次commit的代码被丢弃,完全回到HEAD的状态。
1.2 仅撤回commit的状态,不丢弃修改的代码
把最近一次commit的内容放回暂存区
git reset --hard HEAD^
或
git reset --hard HEAD~1
把最近2次的commit内容放回暂存区
git reset --hard HEAD~2
2.git stash使用场景
当前代码写了一部分,但是临时有个紧急功能要上线,你之前写的代码不想带上去,但是也不想丢掉,可以暂存。
当然,如果你的分支是合理的,是可以避免这种情况,别问我怎么遇到了,我偷懒了。
比如我的1期功能做完了,在dev分支;正在dev做2期功能。此时1期要加个紧急补丁,快速上线,那就可以
git stash save '2期保存'
之后你的工作区就clear了,就是之前1期的状态了。然后巴拉巴拉提交之后找回保存的代码。
拉个新分支feature_2
git stash list
查看指定stash的内容,如stash@{1}
那么
git stash pop stash@{1}
之前的内容就载入当前工作区了。
当然,大家还是每个功能单拉分支开发,别想我,为了省事,都在dev开发。……(^ ^)