1

私の git リポジトリが「Detach Head」状態にある場合、「git pull」を実行すると、新しいコミットをリモートでプルできます。

そして、「git pull」を実行した後、新しいコミットが表示されます。

私の質問は、「リポジトリが Detach head 状態にあり、いくつかのローカル コミットを行った (プッシュしなかった) 場合」です。その後、「git pull」を実行すると、新しいコミットが表示されますが、ローカル コミットはなくなります。

何故ですか?ローカルコミットはどこで/どのように見ることができますか?

ありがとうございました。

4

2 に答える 2

0

切り離された頭でコミットするべきではありません!
自分が切り離された頭の上にいる (そして変更を加えたい) ことに気付いたら、次のことを行う必要があります。

git checkout -b someBranch

すでに変更を加えてコミットしていることを考えると、それらを失ったら、次のようなことをする必要があります。

git branch someBranch HEAD@{1}

詳細については、これを確認できます。

于 2012-11-01T07:23:47.710 に答える
0

通常、HEADポインターは、実際の参照 (通常はブランチ) を指すシンボリック参照です。その上でコミットできます。デタッチされた HEAD 状態にある場合、HEADポインターは実際の参照ではなくコミットを直接指します。この時点でコミットすると、データは保存されますが、アクセスできなくなります。実際のブランチに切り替えた場合、作成した新しいコミットに戻す簡単な方法はありません。

解決策は、使用している場所から枝を切り取ることですgit branch foo。ブランチを切り替えてもfoo、新しいコミットを含む新しく作成されたブランチに戻ることができます。

于 2012-11-01T07:28:04.053 に答える