1. stash
stash 命令能够将还未 commit 的代码存起来,让你的工作目录变得干净。
应用场景:某一天你正在 feature 分支开发新需求,你的功能开发到一半需要切到dev分支
# 保存当前未commit的代码
git stash
# 保存当前未commit的代码并添加备注
git stash save "备注的内容"
# 列出stash的所有记录
git stash list
# 删除stash的所有记录
git stash clear
# 应用最近一次的stash
git stash apply
# 应用最近一次的stash,随后删除该记录
git stash pop
# 删除最近的一次stash
git stash drop
2. reset --soft
回退你已提交的 commit,并将 commit 的修改内容放回到暂存区。
应用场景:本来属于两块不同功能的修改,一起 commit 上去,这种就属于不规范
# 恢复最近一次 commit
git reset --soft HEAD^
对于已经 push 的 commit,也可以使用该命令,不过再次 push 时,由于远程分支和本地分支有差异,需要强制推送 git push -f 来覆盖被 reset 的 commit。
3. revert
将现有的提交还原,恢复提交的内容,并生成一条还原记录
应用场景:开发上线的功能有问题,需要马上撤回,否则会影响到系统使用。这时可能会想到用 reset 回退,可是你看了看分支上最新的提交还有其他同事的代码,用 reset 会把这部分代码也撤回了。
git log
git revert 21dcd937fe555f58841b17466a99118deb489212
因为 revert 会生成一条新的提交记录,这时会让你编辑提交信息,编辑完后 :wq 保存退出就好了。