私はgitを初めて使っています。ローカルリポジトリを特定のコミットに更新できるかどうかを知りたいと思います。 これはチェックアウトを使用して可能ですか?事前にgitで特定のコミットに更新する方法は?
git checkout <commitId>
EXP
git checkout 55215860452c5c6fb11eac6f51d63abb187e7
ありがとう!
私はgitを初めて使っています。ローカルリポジトリを特定のコミットに更新できるかどうかを知りたいと思います。 これはチェックアウトを使用して可能ですか?事前にgitで特定のコミットに更新する方法は?
git checkout <commitId>
EXP
git checkout 55215860452c5c6fb11eac6f51d63abb187e7
ありがとう!
はい、git checkout <sha1>
を使用できます。
コメントで述べたように、あなたが使用することができます。
いいえ、SHA1ハッシュを使用する必要はありません。 SHA1ハッシュ、またはあいまいではないSHA1の任意の接頭辞、またはコミットを指す任意の参照を使用できます。多かれ少なかれ質問に答えるSHA1を使用することができます。なぜなら、私はダウンボトムをしません。しかし、この答えは 'git checkout'の使い方を知らない人にとっては非常に誤解を招くものです。 –
@MarkAdelsbergerありがとうこれを修正するためのあなた。それに応じて私の答えをより正確に更新しました。 – rdurand
git checkoutの後に
「自分のローカルリポジトリを更新する」という意味に依存します。あなたは現在のブランチに残っているしたい場合は、事前にあなたのブランチをリセットすることができてコミット:
git reset --hard <SHA1>
これはSHA1のそれにあなたのブランチの状態を配置します。コマンドgit checkoutは作業中のブランチを変更するので、ローカルリポジトリの状態も変更されますが、ブランチは同じではなくなります。
@ JSeven:私は 'git pull'のようなものを、最後のコミットとマージしない条件で、前のコミットを使って欲しいです。 –
私は 'git reset --soft
--softはそのSHA1にないものをリポジトリで変更したままにしておきます。つまり、あなたがgit cleanやgit reset -hardをしない限り、ファイルはSHA1の持つ機能を反映しません。 – JSeven
はい、これは 'git checkout'の動作です。あなたが提供する部分があいまいでない場合は、コミットハッシュの終わりを省略することができます。 – Quentin
そのshaがブランチの対象でない場合、これは分離状態になります。それは大したことではありませんが、 'git checkout -b new-branch-name $ SHA'を好むかもしれません。 –
ハッシュでチェックアウトするのはまれです。通常、あなたはいくつかのref(これは同等ですが、ブランチ名のような人間のフレンドリーな名前を持っています)にもっと興味があります。そして、refでラベル付けされていない特定のハッシュに興味があるなら、今度はそのrefを作成する時間です(あなたが興味を持っているので)。このコミットを参照するブランチを作成することは、 'git checkout -b'はそれを行います。 –