【问题标题】:Pull a commit from a different repository从不同的存储库中拉取提交
【发布时间】:2015-03-31 12:03:53
【问题描述】:

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

使用

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)

不能从不同的项目中提取提交吗?

【问题讨论】:

    标签: git commit pull git-fetch


    【解决方案1】:

    (为方便起见,下面我们称你的朋友为“爱丽丝”。)

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

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

    不能从不同的项目中提取提交吗?

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

    使用有效的git fetch 语法

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

    你正在使用的命令,

    git fetch <remote-url> <commit>
    

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

    git fetch <repository> 
    

    &lt;repository&gt; 是一个远程地址,即一个昵称,您的本地存储库通过该昵称知道 Alice 的存储库。您可能需要更具体一些,并在此命令末尾添加 refspec

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

    首先将 Alice 的仓库添加为 远程

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

    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
    

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

    其他资源

    【讨论】:

    • 为了完整起见,我要补充一点,您可以git fetch 提供一个原始 URL(和可选的 refspec)……但除非您对 git 非常熟悉,并且知道您正在以这种方式进入什么状态。 :-)
    【解决方案2】:

    我建议以下操作顺序:

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

    2) 拉它。

    3) 使用git cherry-pick 将提交从另一个存储库提取到您的存储库中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-02
      • 2022-11-15
      • 2012-06-01
      • 1970-01-01
      • 2021-03-16
      • 1970-01-01
      • 1970-01-01
      • 2011-06-13
      相关资源
      最近更新 更多