git - 如何从另一个 git 存储库中选择提交,并保留或记录原始哈希
问题描述
参考这个线程: Is it possible to cherry-pick a commit from another git repository?
..那里提供了这个答案(这是我需要的):
$ git --git-dir=../<some_other_repo>/.git \
format-patch -k -1 --stdout <commit SHA> |
\ git am -3 -k
是否有一种可能的变体可以自动记录(添加到提交消息中?)从我修补的地方到我申请的地方的相关 git 哈希?
手动编辑是可能的,但对于 +100 次提交非常乏味......
解决方案
git fetch <path_to_some_other_repo> <ref_that_has_the_commit>
git cherry-pick <the_commit> -x
-x
在原始提交消息中附加一行“(从提交中挑选的樱桃......)”。但它不会记录提交来自哪个存储库。
更新:
您想要选择的提交可以从一个或多个分支或标签访问。分支和标签属于 refs。在大多数情况下,您无法获取随机的单个提交,除非远程存储库允许。为了将提交提交到您当前的存储库中,您需要从其他存储库中获取 refs。假设提交来自分支foo
,历史是A-B-C-D-E-F-G
并且您想要选择 C、D 和 E。您需要先运行git fetch origin foo
,然后再将这些提交选择到当前分支。您可以在 中指定提交git cherry-pick
,可以是一个一个,也可以是在一个范围内,X..Y
或者可能是X...Y
:
git cherry-pick C D E -x
git cherry-pick B..E -x
的图表foo
可能比这个简单的例子更复杂,但你总能找到一种正确的方法来指定它们。
推荐阅读
- javascript - 用 eval 动态创建 jQuery 选择器?
- ios - 如何使用视觉框架检测 iPhone X 以外的面部标志
- python - windows python http.server 无法访问
- asp.net-core - Response.OnStarting 可以与异步等待一起使用吗?
- bash - 自动化 graph.microsoft.com 身份验证和邮箱读取
- r - 具有区间和分类自变量和因变量的模型
- python - 最小二乘优化
- angularjs - 无法读取下拉列表中未定义的属性“id” - AngularJS
- php - 如果客户端中止请求,feof 会在 php://input 上返回 true 吗?
- rethinkdb - 如何过滤 rethinkdb 中的嵌套字段