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
は、フォークで<branch>
が行うmaster
から分岐します。さらに、ローカルブランチはフォークでそのブランチを追跡するようになるため、フォークでコミットされた新しい変更を簡単に取り込むことができます。
作業コピーに変更が含まれていないことを事前に確認する必要があると思います。
リモートを追加しない方法。
git checkout --Orphan fork_branch
git reset --hard
git pull <url of fork> <branch>