checkout
gitのs とは何ですか?
checkout
特定のブランチにHEAD
アクセスすると、そのブランチへのポイントがわかります。しかし、それはどういう意味ですか?その後、そのブランチで作業できるということですか?はいの場合、ブランチをチェックアウトしないと、ブランチで作業できませんか?
また、どういうremote checkout
意味ですか?それはどのように役立ちますか?
checkout
gitのs とは何ですか?
checkout
特定のブランチにHEAD
アクセスすると、そのブランチへのポイントがわかります。しかし、それはどういう意味ですか?その後、そのブランチで作業できるということですか?はいの場合、ブランチをチェックアウトしないと、ブランチで作業できませんか?
また、どういうremote checkout
意味ですか?それはどのように役立ちますか?
回答:
お気づきのように、HEAD
はコミットツリーのどこにいるかを示すラベルです。あるコミットから別のコミットに移動すると、それも一緒に移動します。 git checkout <commit>
コミットツリー内を移動し、フォーカス(HEAD
)を指定したコミットに移動するための基本的なメカニズムです。
、ハッシュ、支店名、タグ名、相対的な構文(コミット多くの方法のいずれかによって特定することができるコミットHEAD^
、HEAD~1
ように、等)とを。多くの場合、チェックアウトがブランチを変更していると見なすと便利です。その観点から機能するオプションがいくつかありますが、それらはすべてコミットを参照します。
コミットをチェックアウトするには、移動する以外にいくつかの副作用がありHEAD
ます。
-b
オプションの新しいブランチは、現在にコミット基づいて作成して、アクティブになります。--track
オプションにチェックアウトブランチはリモートブランチを認識して行うことができます--orphan
オプションの新しいブランチが作成されます(と同様-b
)が、既存のコミットに基づいてされることはありません。いくつかのオプションがあります。これらはgit checkout man-pageで読むことができます。これらのオプションはすべて、あるコミットから別のコミットへの移動を中心に展開されHEAD
ます。移動に加えて、その移動の影響が異なるだけです。
git checkout <commit> <path>
ブランチを切り替えないことに注意してください。
git checkout <path>
。
理解に役立つように、ファイル、フォルダ、ブランチを使用したチェックアウトのいくつかの使用例について説明します。
名前の付いたフォルダがdev
ありindex.html
、すべてが追跡されていて、作業ディレクトリがクリーンであるとします。
誤ってファイル名index.html
を変更して元に戻したい場合は、単にgit checkout index.html
それを使用して、現在選択されているブランチからリポジトリからファイルの状態を回復します。
dev
フォルダに変更を加え、それを回復したい場合は、私は使用できますgit checkout dev
が、dev
そのフォルダーをチェックアウトする代わりに、名前付きのブランチが既にある場合、そのブランチがプルダウンされます。それを避けるために私はむしろやりたいですgit checkout -- dev
。
ここで裸の二重ダッシュは現在のブランチを表しdev
、現在選択されているブランチからのフォルダーをgitに要求します。
同様に、私が行う場合git checkout alpha dev
、アルファブランチからdevフォルダーをプルダウンします。
この回答は、最初の質問「Gitチェックアウトは本当に意味がある」に対するものです。