3

checkout コマンドのgit ドキュメントには、次のテキストがあります。

...パスが指定されていない場合、git checkout は HEAD も更新して、指定されたブランチを現在のブランチとして設定します....

これが何を意味するかをもっと簡単に説明できる人はいますか?簡単に見えて申し訳ありませんが、そのページを読んでも、それが何を意味するのか正確にはわかりません. これが基本的なようでしたら申し訳ありません..

特に、チェックアウトが HEAD を更新する方法について混乱しています。私は通常、チェックアウトが作業ディレクトリに影響を与えることを想定しています。これは、後で作業する目的でリポジトリのローカルコピーを更新しているという点で、git に固有の機能ですか?

4

5 に答える 5

3

バージョンA:(ブランチのみを指定)

git checkout <branch>

その<branch>のすべてのファイルを取得し、HEAD( "where am I now"へのポインター)を指定されたブランチに配置します。

バージョンB:(パスのみを指定)

git checkout <file>

<file>の最新バージョンを取得し、HEADをそのままにします。

于 2013-01-15T20:10:16.240 に答える
3

HEAD作業コピーがチェックアウトされたコミットへのポインタです。したがって、ブランチ (またはコミットまたはタグ) をチェックアウトするHEADと、そのコミットに設定されます。

この情報は textfile.git/HEADに保存されているため、その内容を簡単に確認できます。

$ cat .git/HEAD
# refs: refs/heads/master
于 2010-09-20T19:19:02.660 に答える
3

それgit checkout branchname

  1. そのブランチの先端から作業ディレクトリにファイルをチェックアウトし、
  2. そのブランチの先端に設定HEADして、その「上」にいるようにします。

例:

 jb@apto % git branch         
 * develop
   master
   next
 jb@apto % git checkout master
 Switched to branch 'master'
 jb@apto % git branch
   develop
 * master
   next
于 2010-09-20T19:29:54.990 に答える
1

DETACHED HEADモード (この質問を参照) を使用している場合は、HEAD を master ブランチに簡単にリセットできます。

チェックアウト

ここで ' ' は HEAD をブランチgit checkoutの先端にリセットします。 (詳細は「ビジュアル Git リファレンス」を参照) また、インデックスと作業ディレクトリの両方を更新します。 したがって、ポインター ' ' をリセットするだけではありません。master


HEAD

于 2010-09-20T19:18:12.000 に答える