git hard soft Mixed keey 和 cherry-pick 理解
git 本地代码 暂存去 本地仓库之间关系如下图
1.soft
① 移动本地库HEAD指针
② 本地仓库重置 位提交之前状态
意思就是,回滚后,仅仅是把本地库的指针移动了,而暂存区和你本地的代码是没有做任何改变的。而你上次改动已提交committed到本地库的代码显示是绿色即未提交
2.mixed
① 移动本地库HEAD指针
② 本地仓库重置 位提交之前状态
③ 重置暂存区
意思就是,回滚后,不仅移动了本地库的指针,文件处于未add 和submit状态。
3. Hard
①移动本地库HEAD指针
②重置暂存区
③重置工作区
意思就是,回滚后,本地代码就是你回退版本的代码
4.keep
①移动本地库HEAD指针
②暂存区不变(你改动的代码不变)
③重置工作区(把你工作区回复到以前,如果和你改动代码冲突可能还需要解决)
意思就是,回滚后,本地代码就是你回退版本的代码,而暂存区是没有做任何改变的。
5 . cherry pick
主分支master 拉个新分dev 然后新分支(dev)已经提交很多log
现在临时需要master发布新分支其中一个log.
① 切换到master
② cherry pick dev 你需要的log
③ commit 提交即可
//数字符号
① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩
⑪ ⑫ ⑬ ⑭ ⑮ ⑯ ⑰ ⑱ ⑲ ⑳