git cherry-pick 多个commit_Git使用爬坑记录

主博客地址:

F嘉阳 博客​blog.fjy8018.top

掘金地址:

F嘉阳 的个人主页 - 掘金​juejin.im

分离头指针

当前分支图

ee542b6f510f8412f1bd93a0ef286bad.png

切换到之前的某一次提交

6396c6fba6ad6ea5f69ed41a6498d6bb.png

执行命令

$ git checkout de11fa87ea

提示,当前位于“分离头指针”状态

1939f4de8c63fd7ecce1626058dbfa76.png

分支图

cd80216dc8d96e0a6150afd204c8419a.png

注意

  • 在分离头指针状态下没有绑定分支
  • 产生的commit不会被保存
  • 分支切换后在分支图中看不到该commit
  • 一段时间后会被git自动清除

使用场景

  • 尝试性做一些变更,可以随时丢弃

此处演示分离头指针丢失commit的情况和补救措施

丢失commit

使用IDE修改文件并提交,忽略所有警告,修改后分支图如下

8a2dcc2cc4197e3575e3b6cd36ab5848.png

此时接到其他需求,需要切换分支进行紧急修复

执行命令

$ git checkout master

分支切换成功,并弹出提示和告警

Warning: you are leaving 1 commit behind, not connected to any of your branches:
199ac20 游离状态修改文件
If you want to keep it by creating a new branch, this may be a good time to do so with:
git branch 199ac20
Switched to branch 'master' Your branch is up to date with 'origin/master'.

1fcc8756c9c0699845e4082657e6e5f3.png

此时查看分支图,刚才的commit已经不可见

3a78ac4c35e23fb514a6ec145f3d5742.png

补救

此时发现刚才的commit十分重要,可根据git的提示进行补救

执行命令

$ git branch hot-fix 199ac20

再次查看分支图,可见commit已经恢复

ed29508fbb10e3780ac0eb0aadb2408a.png

本地分支操作

以下操作仅适用于本地分支,无远程分支协同工作的情况

修改当前commit的message——amend

当前分支图

9454d437e00d15c7fddccd83ca01aa53.png

执行命令

$ git commit --amend

自动弹出编辑器

a5cbe11d34c52c2f3b3a55ab8e70a9ae.png

修改后保存并关闭编辑器即可,输出如下

3c83a1fbc837dd575a9e4924067238ee.png

再次查看分支图

7cd2574a2b032db46255822b1d4f4275.png

修改前面某次commit的message——rebase

现计划修改如下message

093aad3d58920389979c47b4b7897478.png

使用IDE拷贝其父提交的SHA值

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值