2016-09-04 4 views
0

私はGitを使いました。私は常に1つの支店で働いています。今私は理解していない状態です。私のgit statusと言う:HEADは25e7afbから切り離されています。git statusと言っています:HEADは特定のsha番号から切り離されました

実際、数日前に私はチェックアウトしました($ git checkout)。その後、私は警告を受け取り続けます。HEADは切り離され、新しい変更が加えられます。

私はチェックアウトとHEADSをリセットしましたが、それでもHEADは切り離されています。

私は新しいコミットをプッシュしようとするとき、私は添付のエラーを取得します。

私のgitkのスクリーンショットも添付しました。

誰でもこの問題を解決する方法を教えてください。

enter image description here enter image description here

+0

'git status'とは何ですか? – Christoph

+0

HEADは25e7afbから切り離されています(この番号は2回前のコミットのSHA IDです)。 – Sepideha

+0

http://stackoverflow.com/q/10228760/1256452を参照してください。ただし、受け入れられる回答は、あなたが新しいコミットをしていないdetached-head状態。 – torek

答えて

1

ソリューションは、実際には、どのように物事が働く何をチェックアウト理解の後に来ます。

最初にコミットを作成すると、gitは既定の既知名masterを持つブランチを自動的に作成します。

C1 
^ 
| 
master 

ご覧のとおり、C1は最初のコミットを表します。ポインタ(ブランチ)はmasterで、C1を指しています。

あなたは別のものを作成し、新しいものへのポインタが移動をコミット:

C1 <- C2 
    ^
     | 
     master 

マスターは今C2を指します。 C2は親をC1とする。すべてのコミットは、前のコミットを指します。

図には表示されていないもう1つのポインタがあります。これはHEADポインタです。 HEADは現在のコミットを指しています。意味は、あなたがC2なら、HEADはC2を指しています。これは、コミットの間で簡単にジャンプするのに役立ちます。

C1にチェックアウトした場合は、HEADポインタをC1に移動してC2から離します(デタッチ)。

したがって、ほとんどの場合、別のコミットにチェックアウトした場合、通常、後で最も新しいコミットにチェックアウトします。

Thisこのチュートリアルの一部では、チェックアウトとリセットについて説明しています。 branchesから始まる読書を開始する必要があるかもしれません。

関連する問題