106

github上のリポジトリのクローンであるローカルgitリポジトリがあります。誰かがリポジトリをフォークし、新しいリポジトリの新しいブランチに変更を加えました。この新しいブランチを自分のリポジトリに移動したいと思います(マスターとマージする前に、最初にローカルで作業します)。

新しいブランチを作成してからフォークされたリポジトリからプルしようとしましたが、新しいブランチはマスターブランチのコピーであり、ローカルファイルの変更であるため、文句を言います。

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のローカルリポジトリにそのブランチが必要です。

これどうやってするの?

4

3 に答える 3

174

git statusローカルリポジトリにステージングされていない変更が存在しないことを示す必要があります。
これを行うには、最初にローカルの変更を隠してから、そのブランチをプルします。その後、あなたはあなたの隠し場所を適用することができます。


ローカルリポジトリにフォークのブランチ構造を再作成する場合は、次の操作を実行できます。

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

fork_branchこれにより、フォークの場合と同じ履歴を持つローカルブランチが作成されます<branch>。つまり、フォークのどこfork_branchから分岐するかがわかります。さらに、ローカルブランチはフォーク内のそのブランチを追跡するため、フォークでコミットされた新しい変更を簡単に取り込むことができます。master<branch>

作業コピーに変更が含まれていないことを事前に確認する必要があると思います。

于 2013-01-17T16:10:30.970 に答える
64

リモートを追加せずにメソッド。

git checkout --orphan fork_branch
git reset --hard
git pull <url of fork> <branch>
于 2017-09-18T23:01:19.527 に答える
0

私は使用して同様のことをすることができました...

git switch -c new_branch
git pull https://github.com/<user>/<forked-repo>.git <branch>
于 2022-01-13T09:56:40.797 に答える