从不同的存储库中拉取提交

Pull a commit from a different repository

我克隆了一个项目供我使用,但一位朋友对原始项目进行了更改。我想将该提交中的更改提取到我的项目中。

正在使用

git fetch https://github.com/cvandermeer/wisemonkeys.git f70bcfd75a498ed9159b6e5313e306166fc3df62

抛出以下错误:

error: no such remote ref f70bcfd75a498ed9159b6e5313e306166fc3df62

git remote -v 给我以下内容,

origin  https://github.com/alucardu/appsynth.git (fetch)
origin  https://github.com/alucardu/appsynth.git (push)

是否无法从不同的项目中提取提交?

(为方便起见,以下称您的朋友为“爱丽丝”。)

您获取引用(分支或标签),而不是提交

I would like to pull the changes from that commit into my project.

Is it not possible to pull a commit from a different project?

严格来说,您不获取提交;您获取 references(分支或标签)。如果您对 Alice 的存储库中存在但您的存储库中不存在的特定提交感兴趣,则需要获取一个引用,其祖先包含来自 Alice 的存储库中的相关提交。

使用有效的 git fetch 语法

Using [...] throws the following error [...]

您正在使用的命令,

git fetch <remote-url> <commit>

不是有效的 git fetch 语法,因此出现错误。您要使用的语法是

git fetch <repository> 

其中 <repository> 是远程的,即您的本地仓库知道 Alice 的仓库的昵称。您可能想要更具体,并在此命令末尾添加一个 refspec

编辑:正如 torek 在 中指出的那样,您也可以使用裸机 URL,无需在本地存储库中配置远程,但这可能不是你想要做的,在这里。

首先将 Alice 的存储库添加为 远程

git remote -v gives me the following [...]

git remote -v 的输出表明您还没有将 Alice 的存储库添加为本地存储库的 远程。你需要这样做才能从中获取:

git remote add alice https://github.com/cvandermeer/wisemonkeys.git

获取并了解有关感兴趣的提交的更多信息

然后运行

git fetch alice

从 Alice 的存储库中获取您还没有的所有内容。然后你可以 运行

git name-rev f70bcfd75a498ed9159b6e5313e306166fc3df62  

确定可从中访问提交的引用,并且

git show f70bcfd75a498ed9159b6e5313e306166fc3df62

打印有关提交的信息并决定如何处理它(精心挑选它,将它所在的分支合并到您的本地分支之一,等等)。

其他资源

我建议执行以下操作:

1) 将另一个存储库连接为远程存储库,git 远程。

2)拉。

3) 使用 git cherry-pick 从其他存储库中提取提交到你的。