web-dev-qa-db-ja.com

Git pull Origin <branch>がマスターを上書きしますか?

Githubにリポジトリがありますaav1

私のラップトップには、masterと呼ばれる1つとvs12upと呼ばれる2つのブランチがあります。マスターブランチは、ソフトウェアがVisual Studio 2008の場合で、vs12upはVisual Studio 2012に変換されます。

私のラップトップではすべてが正常に見え、新しいブランチをgithubにプッシュしましたが、正しいようです。

デスクトップでリモートブランチをプルしようとしました。

git pull Origin vs12up

デスクトップのマスターブランチに変更を書き込みましたgit logvs12upブランチで行われたコミットを示していますが、gitブランチはmasterのみを示しています、これは現在のブランチです。

変更をmasterブランチに戻し、ラップトップのリポジトリと一致するようにデスクトップでvs12upブランチをプルするにはどうすればよいですか?

14
Jeff

リモートブランチ名でgit pullを実行すると、リモートブランチがフェッチされ、現在のローカルブランチにマージされます。元に戻すには、まずローカルブランチをリモートmasterにリセットし、次に対応するリモートブランチから新しいローカルvs12upブランチを作成する必要があります。

  1. ローカルmasterをリセットして、リモートリポジトリのmasterと一致させます(警告:次のコマンドを発行する前に、保持したいコミットされていない変更がないことを確認してください)。

    git reset --hard Origin/master
    
  2. すべてのリモートブランチをローカルリポジトリにフェッチします。

    git fetch Origin
    
  3. リモートvsup12ブランチから新しいローカルvsup12ブランチを作成し、この新しいローカルブランチに切り替えます。

    git checkout -b vsup12 Origin/vsup12
    

git pullブランチに切り替えてvsup12を実行すると、Githubのvsup12ブランチから最新の変更をフェッチしてローカルのvsup12にマージすることに注意してください。

35
earl