【问题标题】:Git pulling a branch from another repository?Git从另一个存储库中拉出一个分支?
【发布时间】:2013-01-01 05:39:49
【问题描述】:

我有一个本地 git 存储库,它是 github 上存储库的克隆。有人分叉了存储库并在新存储库的新分支中进行了更改。我想将这个新分支移动到我的存储库中(在与主分支合并之前先在本地处理它)。

我尝试创建一个新分支,然后从分叉存储库中提取,但它抱怨因为新分支是主分支的副本以及本地文件更改,所以它说

error: Your local changes to the following files would be overwritten by merge.

那么如何将另一个仓库中的分支拉到我本地仓库的新分支中呢?

我希望这是有道理的。如果没有,这是我的存储库:https://github.com/MatthewLM/cbitcoin

如您所见,有人用“linuxBuild”分支创建了一个新存储库:https://github.com/austonst/cbitcoin/tree/linuxBuild

我想要 MatthewLM/cbitcoin 的本地存储库中的那个分支。

我该怎么做?

【问题讨论】:

    标签: git github git-branch


    【解决方案1】:

    不加遥控器的方法。

    git checkout --orphan fork_branch
    git reset --hard
    git pull <url of fork> <branch>
    

    【讨论】:

    • 感谢您,我已将它添加为书签,并会继续使用它!
    • 2020 年最佳答案
    【解决方案2】:

    您需要确保 git status 显示本地存储库中不存在未暂存的更改。
    您可以通过首先存储本地更改然后拉取该分支来做到这一点。之后,您可以应用您的存储。


    如果要在本地仓库中重新创建fork的分支结构,可以执行以下操作:

    git remote add fork <url of fork>
    git fetch fork
    git checkout -b fork_branch fork/<branch>
    

    这将创建本地分支fork_branch,其历史与分支中的&lt;branch&gt; 相同,即fork_branch 将从您的master 分支,其中&lt;branch&gt; 在分支中执行。 此外,您的本地分支现在将跟踪 fork 中的该分支,因此您可以轻松地提取在 fork 中提交的新更改。

    我认为您仍然需要事先确保您的工作副本不包含任何更改。

    【讨论】:

    • 好的,谢谢。如果我想要我的本地更改并且在分支的分支中找不到提交,这将是很棒的。但是,如果我希望新分支与 fork 存储库中的完全一样呢?这包括在这个新分支发生分叉后从我自己的存储库中删除任何提交。这样一来,就好像分支是在我自己的存储库上创建的,而不是分叉的。
    • 嗯,你的答案是我需要做的可接受的解决方案,但如果我可以将新分支拉入存储库,我会发现它更直接。我等会儿看看别人怎么说。
    • @MatthewMitchell:请检查更新。这就是你要找的东西吗?
    • 嗯,我确实使用了将它与另一个分支合并的方法(我只是将它与主分支合并),但是在我只想要一个与另一个存储库完全相同的分支的情况下,我将尝试您描述的获取和结帐方法。谢谢。
    • 用于从另一个 repo 迁移另一个分支“gh-pages”!
    猜你喜欢
    • 2017-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-12
    • 2016-07-14
    相关资源
    最近更新 更多