我的 git 存储库中有一个文件,该文件有时会在另一个 git 存储库中接收错误修复。我希望能够将这些提交提取到我的仓库中。
例如:
project_a/
/.git
/src/somefile.cpp
project_b/
/.git
/utils/converters/apples/bananas/src/somefile.cpp
我想从project_b
to拉入提交project_a
for somefile.cpp
。
我的 git 存储库中有一个文件,该文件有时会在另一个 git 存储库中接收错误修复。我希望能够将这些提交提取到我的仓库中。
例如:
project_a/
/.git
/src/somefile.cpp
project_b/
/.git
/utils/converters/apples/bananas/src/somefile.cpp
我想从project_b
to拉入提交project_a
for somefile.cpp
。
如果您有相同名称但位于不同文件夹中的文件(假设您已将 project_b 合并到子目录中),那么您必须按以下方式进行挑选
git cherry-pick project_b/master --strategy=subtree
您可以添加project_b
为遥控器,然后从中获取和挑选。尝试这样的事情:
git remote add project_b /path/to/project_b/
git fetch project_b
现在你可以从project_b
. 如果您想要的提交位于project_b
master 分支的顶端,只需执行
git cherry-pick project_b/master
或者,您可以绕过远程获取/樱桃采摘的东西,直接从project_b
这样的补丁:
git --git-dir=/path/to/project_b/.git format-patch -k -1 \
--stdout <commit SHA> somefile.cpp | git am -3 -k
(改编自这个答案。)