2012-07-06 8 views
36

リモートブランチの正確な「コピー」を特定のローカルブランチに「コピー」します。リモートgitブランチをローカルリポジトリにきれいに取得/コピーする方法

たとえば、チームメンバーがリモートリポジトリのexperimentというブランチにチェックインした実験的な機能を作成したとします。私は自分のローカルリポジトリ上の新しいブランチをチェックアウトしたいと思って、そのままブランチにコピーしてください。

私は自分のコードとマージしたくありません - 私は彼が "実験"ブランチで行ったことをきれいに見ることができるように私のコードを完全に上書きしたいと思います。

他の誰かがあなた自身のローカルリポジトリにリモートリポジトリにコミットしたリモートブランチを、どのように "取得"(フェッチ/プル/どんなに...)するのでしょうか?自分のローカルコードですか?

+0

このような場合は、私のローカルリポジトリのコピーを別に保管することをおすすめします。間違いからあなたを救うだけでなく、それは私が並行して働くことを可能にします。 – user1164937

答えて

67

あなたが合併を気にしない場合:

git reset --hard <remote>/<branch_name> 

これは正確に何をしたい行います:リモートがあるとして何のマージ、ノーリベースは、単にまったく同じ状態に現地支店を置いていません。

しかし、あなたはその必要はありません。あなたは、リモートと同じ状態を持っている新しいローカルブランチを作成し、そのgit checkoutとローカルのものを作成するときにリモートブランチを指定したい:

git checkout -b <my_new_branch> <remote>/<branch_name> 

すでに地元の支店を持っている場合は、git reset --hardを使用します(たとえば、いくつかの変更を加えて)、という変更を破棄し、代わりにリモートブランチの正確なバージョンを使用します。

リモートブランチの最新の状態を確認するには、チェックアウトまたはリセットする前にgit fetch <remote>を使用してください。

+7

変更を破棄するためにリセットしないでください。代わりにgit stashを実行してください。安全な方法。 –

+2

これは最初はうまくいきませんでしたが、それは私がリモートをフェッチすることで始まらなかったからです。 – David

+0

私はこの答えを理解していません。 の代わりに「remote/」または「/」と入力しますか? – William