ToB企服应用市场:ToB评测及商务社交产业平台

标题: git 提交的进阶操作 [打印本页]

作者: 饭宝    时间: 2024-7-20 00:54
标题: git 提交的进阶操作

cherry-pick

cherry-pick 是 Git 中的一种操作,允许你从一个分支中选择特定的 commit,并将其应用到另一个分支。它的主要用途是将特定的更改引入到其他分支,而无需归并整个分支汗青。这在修复 bug 或者移植某些功能时特殊有用。
cherry-pick 的使用场景
  1. A---B---C---D---E  (main)
  2.          \
  3.           F---G---H (feature)
复制代码
你可以使用 cherry-pick 从 feature 分支上选择某个特定的 commit 并应用到 main 分支,比方将 G 应用到 main 分支。
归并多个commit

利用 git rebase
归并步骤
  1. `$ git rebase -i HEAD~3`
复制代码
归并指定版本号(不包含此版本)
  1. $ git rebase -i [commitid]
复制代码
指令含义:
● p, pick = use commit
● r, reword = use commit, but edit the commit message
● e, edit = use commit, but stop for amending
● s, squash = use commit, but meld into previous commit
● f, fixup = like “squash”, but discard this commit’s log message
● x, exec = run command (the rest of the line) using shell
● d, drop = remove commit
  1. $ git log --oneline
  2. 291e427 update website
  3. 8c8f3f4 update website
  4. 1693a6f update clear-logs.sh version
  5. 3759b84 update clear-logs.sh
  6. fc36a2a add links
  7. 1d795e6 fix && update clear-logs.sh 0.0.2
  8. 9536dab add dingtalk script
  9. 3a51aaa fix shellcheck problem
  10. 2db6ad3 add clear logs scripts
  11. e57b0e6 fix && add batch del
  12. 17cb931 fix && add batch del
  13. cf7e875 add redis script
  14. fe4bbcb Initial commit
复制代码
编辑归并版本
指定要归并版本号,cf7e875 不加入归并,进入 vi 编辑器
  1. [/code] [code]$ git rebase -i cf7e875
  2. pick 17cb931 fix && add batch del
  3. pick e57b0e6 fix && add batch del
  4. pick 2db6ad3 add clear logs scripts
  5. pick 3a51aaa fix shellcheck problem
  6. pick 9536dab add dingtalk script
  7. pick 1d795e6 fix && update clear-logs.sh 0.0.2
  8. pick fc36a2a add links
  9. pick 3759b84 update clear-logs.sh
  10. pick 1693a6f update clear-logs.sh version
  11. pick 8c8f3f4 update website
  12. Rebase cf7e875..291e427 onto cf7e875 (10 commands)
  13. #Commands:
  14. #p, pick = use commit
  15. ...
复制代码
编辑 commit
  1. #把 e57b0e6 合并到 17cb931,不保留注释;把 1693a6f 合并到 3759b84
  2. pick 17cb931 fix && add batch del
  3. f e57b0e6 fix && add batch del
  4. pick 2db6ad3 add clear logs scripts
  5. pick 3a51aaa fix shellcheck problem
  6. pick 9536dab add dingtalk script
  7. pick 1d795e6 fix && update clear-logs.sh 0.0.2
  8. pick fc36a2a add links
  9. pick 3759b84 update clear-logs.sh
  10. s 1693a6f update clear-logs.sh version
  11. pick 8c8f3f4 update website
复制代码
:wq 保存
进入注释页面
:wq保存
强制推送 (必须)
  1. git push --force
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4