一直在用,却无奈被顶,另开一篇
https://www.cnblogs.com/lihanlin/p/12581947.html
图片来自:https://juejin.im/user/3051900006302696一、常用功能
1. 将当前分支修改迁移到新分支(来自CNBlog的小抄)
-
方法1:
我们不需要在A分支做commit,只需要在A分支新建B分支,然后切换过去。这个时候你会发现修改的东西在A,B分支都有。这个时候在B分支commit,那么这些修改保留在B分支上,再切换到A分支上会发现修改都没有保留下来。 -
方法2:
使用git stash 将A分支暂存起来,然后在某一个分支(如master分支)新建一个分支B,然后在B分支上使用git stash pop 将修改弹出到B分支上,然后这些修改就在B分支上了。然后我们又可以愉快的玩耍了~
二、高级命令
- rebase
-
作用
命令在指定的分支上重放,可以让整个提交历史看起来就是串行在一个分支上执行,而实际开发却是在分支上进行的 -
用法
- stash
- 作用
本地临时归档,如正在进行业务的开发,但是突然有个bug需要修改,然而目前已经进行了部分开发,不能提交这些,这个场景下,就可以使用 git stash [save "<name>"] 来完成正在开发部分的本地临时归档,归档完成后就和开发之前(HEAD)的状态一致,这样就可以专心的去修改bug了,当bug修改完成之后就可以通过 git stash apply/pop 来应用之前入栈的stash归档
-
cherry-pick
-
git reset --mixed HEAD~1
: 不删除workspace改动代码, 撤销git commit
, 并撤销git add ./
(不加参数时的默认值) -
git reset --soft HEAD~1
: 不删除workspace改动代码, 撤销git commit
, 不撤销git add ./
-
git reset --hard HEAD~1
: 删除workspace改动代码, 撤销git commit
, 并撤销git add ./
网友评论