2017-03-01 13 views
2

私はGitには新しく、SourceTreeの前のコミットに戻そうとしていました。私はコミットをクリックして元に戻し、チェックアウトをクリックしました。それは私の仕事コピーが分離した頭部になるということを私に速やかに伝えました。これはどういう意味ですか、これは私が避けるべきものですか?SourceTreeの前回のコミットに戻る

+1

[ソースツリーを使用して以前のコミットに戻すにはどうすればよいですか?](http://stackoverflow.com/questions/28253914/how-do-i-revert-back-to-earlier-commit-using-ソースツリー) –

+1

あなたはこのコミットを元に戻すことができましたが、一般的により安全な方法は、このコミットを元に戻すためのコミットを戻すことです。 –

答えて

2

What's a "detached HEAD" in Git?

「チェックアウト」は「gitのチェックアウト」コマンドで

をどのように機能するかを理解して、あなたが仕事をしたい、あなたの プロジェクトのどのリビジョン決定に。 Gitはそのリビジョンのすべてのファイルを作業コピーフォルダに置きます。

通常、あなたが「Gitのチェックアウト」

$ git checkout development 

と通信するためにブランチ名を使用しかし、あなたはまた、特定のSHA1ハッシュが代わりに をコミット提供することができます:

$ git checkout 56a4e5c08 
Note: checking out '56a4e5c08'. 

You are in 'detached HEAD' state... 

正確なこれ状態 - 特定のコミットが ブランチの代わりにチェックアウトされたとき - と呼ばれるものがヘッドに接続されています。

enter image description here

戸建HEADに問題

Gitリポジトリ内のヘッドポインタが(プロジェクトの作業 ディレクトリに配置され、これにより、ファイルや )あなたの現在の作業リビジョンを決定します。通常、適切なブランチ名をチェックアウトすると、Git は、新しい コミットを作成するときに自動的にHEADポインタを移動します。選択した ブランチの最新コミットが自動的に表示されます。

代わりにコミットハッシュをチェックアウトすると、Gitはこれをしません 。その結果、変更を加えて をコミットすると、これらの変更はどのブランチにも属しません。これは、 がブランチのコンテキストで記録されていない場合、 がその状態に簡単にアクセスできる可能性がないことを意味します(鮮やかなメモリを持たない限り、 は覚えています)。その新しいコミットのコミットハッシュ...)。

概要:SourceTreeから 、代わりに特定のコミットをチェックアウトの特定のブランチに親切にチェックアウト。

0

問題はgitと正確には関係していないようですが、使用しているgitクライアント/プロバイダ(bitbucketと思われます)に固有です。

gitをもっとうまく学ぶには、Web UIの代わりにコマンドラインクライアントを使用することをお勧めします。

デタッチされたヘッド状態では、変更内容(およびコミット)がコミットツリーから切り離され、そのコミットをコミットツリーに戻すために追加の作業が必要です。通常、デタッチされたヘッド状態は変更されません。コミットツリーの再配置に使用されます。しかし、分離した状態で実験する価値があります。パーGitのタワーの記事として