Git 从另一个存储库中提取分支?

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

I tried creating a new branch and then pulling from the forked repository but it complains because the new branch is a copy of the master branch as well as the local file changes, so it says

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

那么,如何将另一个存储库中的分支提取到本地存储库中的新分支中呢?

I hope that makes sense. If not, this is my repository: https://github.com/MatthewLM/cbitcoin

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

我要马修 LM/比特币在本地的分支机构。

我怎么能这么做?

102530 次浏览

您需要确保 git status显示您的本地存储库中不存在任何未暂存的更改。
您可以通过首先存储您的本地更改,然后拉动该分支来完成此操作。之后你可以用你的存货。


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

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

这将创建与 fork 中的 <branch>具有相同历史的本地分支 fork_branch,也就是说,fork_branch将从您的 master中分支出去,而 <branch>在 fork 中分支。 此外,您的本地分支现在将在 fork 中跟踪该分支,因此您可以轻松地在 fork 中提交新的更改。

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

如果你不需要跟踪叉子:

git remote remove fork

方法而不添加远程。

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

我可以做类似的事情,用..。

git switch -c new_branch
git pull https://github.com/<user>/<forked-repo>.git <branch>