2017-07-05 10 views
0

私はgitを初めて使っています。ローカルリポジトリを特定のコミットに更新できるかどうかを知りたいと思います。 これはチェックアウトを使用して可能ですか?事前にgitで特定のコミットに更新する方法は?

git checkout <commitId> 

EXP

git checkout 55215860452c5c6fb11eac6f51d63abb187e7 

ありがとう!

+1

はい、これは 'git checkout'の動作です。あなたが提供する部分があいまいでない場合は、コミットハッシュの終わりを省略することができます。 – Quentin

+0

そのshaがブランチの対象でない場合、これは分離状態になります。それは大したことではありませんが、 'git checkout -b new-branch-name $ SHA'を好むかもしれません。 –

+0

ハッシュでチェックアウトするのはまれです。通常、あなたはいくつかのref(これは同等ですが、ブランチ名のような人間のフレンドリーな名前を持っています)にもっと興味があります。そして、refでラベル付けされていない特定のハッシュに興味があるなら、今度はそのrefを作成する時間です(あなたが興味を持っているので)。このコミットを参照するブランチを作成することは、 'git checkout -b'はそれを行います。 –

答えて

2

はい、git checkout <sha1>を使用できます。

コメントで述べたように、あなたが使用することができます。

  • コミット
  • 曖昧ではありませんSHA1も指すどれREFのどれプレフィックスのフルSHA1ハッシュ特定のコミット
+1

いいえ、SHA1ハッシュを使用する必要はありません。 SHA1ハッシュ、またはあいまいではないSHA1の任意の接頭辞、またはコミットを指す任意の参照を使用できます。多かれ少なかれ質問に答えるSHA1を使用することができます。なぜなら、私はダウンボトムをしません。しかし、この答えは 'git checkout'の使い方を知らない人にとっては非常に誤解を招くものです。 –

+0

@MarkAdelsbergerありがとうこれを修正するためのあなた。それに応じて私の答えをより正確に更新しました。 – rdurand

+0

git checkoutの後に私は分離状態です。なぜ私はコミットと同じ支店にいないのですか?私は更新のためにチェックアウトコミットを使用したい。したがって、クライアントは選択された機能をチェックアウトすることができます(機能がコミットの場合)。彼はより多くの機能を見るかもしれず、彼はどの機能を使うかを選択する。 git checkoutを使って可能ですか? –

1

「自分のローカルリポジトリを更新する」という意味に依存します。あなたは現在のブランチに残っているしたい場合は、事前にあなたのブランチをリセットすることができてコミット:

git reset --hard <SHA1> 

これはSHA1のそれにあなたのブランチの状態を配置します。コマンドgit checkoutは作業中のブランチを変更するので、ローカルリポジトリの状態も変更されますが、ブランチは同じではなくなります。

+0

@ JSeven:私は 'git pull'のようなものを、最後のコミットとマージしない条件で、前のコミットを使って欲しいです。 –

+0

私は 'git reset --soft 'が助けになると思っています –

+0

--softはそのSHA1にないものをリポジトリで変更したままにしておきます。つまり、あなたがgit cleanやgit reset -hardをしない限り、ファイルはSHA1の持つ機能を反映しません。 – JSeven

関連する問題