从git上的A库 fork 到 B库,然后A库和B库进行独自的开发。开发中也会遇到一些问题,例如A库有重要的代码修复,老办法是再去B库修改一次,操作起来不太方便。这里就尝试从多个不同git库中进行cherry-pick。
git remote add devorigin
git remote -v
查看是否添加成功git fetch devorigin
将A库的该分支信息同步到本地这里简单概况下git fetch 和 git pull 的区别
git fetch
是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中
git pull
则是将远程主机的最新内容拉取到本地并且直接进行合并,即:git pull = git fetch + git merge
这样可能会产生冲突,需要手动解决
cherry-pick
操作了****B库:git cherry-pick 279f6669f485a522471d5b4c42c828be5df47b4e
如果发生代码冲突会提示代码冲突目录地址:
合并成功的提示:
上图的提示就说明成功的把A库master分支的某次 commit 提交 合并 到B库feature分支上了。
此时如果发现合并错误可以通过 git reset --hard 'commit id'
回退到上一次commit的版本
git push
到B库线上仓库git cherry-pick :将指定的提交 commit id 合并到其他分支
git cherry-pick commitid
举个例子,代码仓库有master和feature两个分支
a - b - c - d Mastere - f - g Feature
将提交 f 合并到 master 分支
# 切换到 master 分支
$ git checkout master# Cherry pick 操作
$ git cherry-pick f
完成上述操作后:代码库就变成了👇🏻,可以看到 master 分支的最新提交增加了一个 f
a - b - c - d - f Mastere - f - g Feature
cherry-pick 支持一次转移多个提交
$ git cherry-pick <commitid1> <commitid2>
上述命令是将 1 和 2 两次提交应用到当前分支,同时也会再当前分支生成一条新的 commit 提交。
如果要转移一系列的连续提交,可以使用下面的简洁语法
$ git cherry-pick commit1.mit9
上述的命令可以转移 > 1 && ≤ 9 的所有提交。他们必须按照正确的顺序放置:提交 commit1 必须早于提交 commit9,否则命令将失效,但不会报错。
特别注意,上述的命令并不包含 commit1。如果要实现 ≥1 && ≤9,可以使用下面的语法
$ git cherry-pick commit1^.mit9
常用配置:
1、-e,--edit
打开外部编辑器,编辑提交信息。
2、-n,--no-commit
只更新工作区和暂存区,不产生新的提交。
3、-x
在提交信息的末尾追加一行(cherry picked from commit …),方便以后查到这个提交是如何产生的。
4、-s,--signoff
在提交信息的末尾追加一行操作者的签名,表示是谁进行了这个操作。
1、--continue
用户解决代码冲突后,第一步将修改的文件重新加入暂存区(git add .),第二步使用下面的命令,让 Cherry pick 过程继续执行。
$ git cherry-pick --continue
2、--abort
发生代码冲突后,放弃合并,回到操作前的样子。
$ git cherry-pick --abort
3、--quit
发生代码冲突后,退出 Cherry pick,但是不回到操作前的样子。
$ git cherry-pick --quit
本文发布于:2024-02-01 13:16:24,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170676458636860.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |