1. ホーム
  2. git

[解決済み] Git が他のリポジトリからブランチをプルする?

2022-11-29 22:27:40

質問

私は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のローカルリポジトリにそのブランチが欲しいです。

どうすればいいのでしょうか?

どのように解決するのですか?

あなたは 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> のようになります。 さらに、ローカルブランチはフォーク内のブランチを追跡するようになり、フォークでコミットされた新しい変更を簡単に取り込むことができるようになりました。

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