当前位置:   article > 正文

Git工作使用笔记_squash commits when merge request is accepted

squash commits when merge request is accepted

分离头指针

当前分支图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A98xBXw8-1593240714867)(https://pic3.zhimg.com/80/v2-a1679d7d0f5882d851e822f283398a89_720w.png)]

切换到之前的某一次提交

img

执行命令

$ git checkout de11fa87ea
复制代码
  • 1
  • 2

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

img

分支图

img

注意

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

使用场景

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

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

丢失commit

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

img

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

执行命令

$ git checkout master
复制代码
  • 1
  • 2

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

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’.

img

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

img

补救

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

执行命令

$ git branch hot-fix 199ac20
复制代码
  • 1
  • 2

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

img

本地分支操作

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

修改当前commit的message——amend

当前分支图

img

执行命令

$ git commit --amend
复制代码
  • 1
  • 2

自动弹出编辑器

img

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

img

再次查看分支图

img

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

现计划修改如下message

img

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

img

执行命令,-i表示交互式执行

$ git rebase -i 199ac203c90f881024c6870d56517df9e2080841
复制代码
  • 1
  • 2

自动弹出编辑

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/631282
推荐阅读
相关标签
  

闽ICP备14008679号