从其他存储库中提取提交

时间:2015-02-01 12:10:58

标签: git commit pull git-fetch

我克隆了一个项目让我继续工作,但是一位朋友对原始项目进行了修改。我想将该提交的更改提取到我的项目中。

使用

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

引发以下错误:

  

错误:没有这样的远程参考f70bcfd75a498ed9159b6e5313e306166fc3df62

git remote -v给了我以下内容,

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

是否无法从其他项目中提取提交?

2 个答案:

答案 0 :(得分:4)

(为方便起见,让我们打电话给你的朋友" Alice"在下面。)

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

  

我想将该提交的更改提取到我的项目中。

     

是否无法从其他项目中提取提交?

严格来说,你不会提交提交;你获取引用(分支或标签)。如果您对Alice的回购中存在的特定提交感兴趣,而不是对您的回复感兴趣,则您需要从Alice的回购中获取其祖先包含有问题的提交的引用。

使用有效的git fetch语法

  

使用[...]会引发以下错误[...]

您正在使用的命令,

git fetch <remote-url> <commit>

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

git fetch <repository> 

其中<repository>是一个遥控器,即你的本地仓库知道爱丽丝回购的昵称。您可能希望更具体,并在此命令的末尾添加refspec

修改:正如his comment中的torek所指出的那样,您也可以使用裸URL,而无需在本地存储库中配置遥控器,但这可能不是什么你想做什么,这里。

首先将Alice的回购添加为远程

  

git remote -v给了我以下[...]

git remote -v的输出表示您尚未将Alice的repo添加为本地存储库的远程。你需要先从中获取它:

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

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

然后运行

git fetch alice

从Alice的回购中获取您已经拥有的所有内容。然后你可以运行

git name-rev f70bcfd75a498ed9159b6e5313e306166fc3df62  

标识可从中访问提交的引用,

git show f70bcfd75a498ed9159b6e5313e306166fc3df62

打印有关提交的信息并决定如何处理它(樱桃挑选它,将它的分支合并到你的一个本地分支机构等)。

其他资源

答案 1 :(得分:1)

我建议采取以下一系列行动:

1)使用git remote连接另一个存储库作为远程存储库。

2)拉它。

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