# Cloning our fork
$ git clone git@github.com:ifad/rest-client.git
# Adding (as "endel") the repo from we want to cherry-pick
$ git remote add endel git://github.com/endel/rest-client.git
# Fetch their branches
$ git fetch endel
# List their commits
$ git log endel/master
# Cherry-pick the commit we need
$ git cherry-pick 97fedac
见How to create and apply a patch with Git . (根据你的问题的措辞,我假设这个其他存储库用于完全不同的代码库 . 如果它是相同代码库的存储库,你应该将它添加为@CharlesB建议的远程存储库 . 即使它是另一个代码库,我想您仍然可以将其添加为远程,但您可能不希望将整个分支添加到您的存储库...)
10 回答
您可以在一行中执行以下操作 . 希望你在git资源库中,需要樱桃挑选的更改,你已经检查出正确的分支 .
git fetch [branch URL] [Branch to cherry-pick from] && git cherry-pick [commit ID]
您需要将其他存储库添加为远程存储库,然后获取其更改 . 从那里你看到提交,你可以樱桃挑选它 .
像那样:
现在您可以完成所有信息
git cherry-pick
.有关使用遥控器的更多信息,请访问:https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes
给出的答案是使用格式补丁,但由于问题是如何从另一个文件夹中挑选,所以这里有一段代码:
这是一个remote-fetch-merge的例子 .
然后你可以:
或者你甚至可以合并整个分支
你可以做到,但它需要两个步骤 . 这是如何做:
将
<remote-git-url>
替换为您想从中挑选的存储库的URL或路径 .将
<branch>
替换为您要从远程存储库中挑选的分支或标记名称 .您可以使用分支中的git SHA替换
FETCH_HEAD
.更新:根据@ pkalinow的反馈修改 .
以下是添加远程,获取分支和樱桃选择提交的步骤
资料来源:https://coderwall.com/p/sgpksw
见How to create and apply a patch with Git . (根据你的问题的措辞,我假设这个其他存储库用于完全不同的代码库 . 如果它是相同代码库的存储库,你应该将它添加为@CharlesB建议的远程存储库 . 即使它是另一个代码库,我想您仍然可以将其添加为远程,但您可能不希望将整个分支添加到您的存储库...)
是 . 获取存储库,然后从远程分支中挑选 .
我的情况是,我有一个团队推动的裸仓库,以及紧挨着它的克隆 . Makefile中的这组行对我来说正常工作:
通过保持裸仓库的主人更新,我们能够挑选出一个发布到裸仓库的建议变更 . 我们还有一种(更复杂的)方式来挑选多个分支进行综合审查和测试 .
如果“什么都不知道”意味着“不能用作遥控器”,那么这没有用,但是这个问题出现了,因为我正在谷歌上搜索这个工作流程,所以我想我会回馈 .
假设
A
是您想要挑选的回购,并且B
是您要挑选的回购,您可以通过将</path/to/repo/A/>/.git/objects
添加到</path/to/repo/B>/.git/objects/info/alternates
来实现 . 如果它不存在,请创建此alternates
文件 .这将使repo B访问来自repo A的所有git对象,并将为您提供樱桃选择 .