2

新しいリポジトリを作成して実行するgit branchと、サイレントに終了します。例えば:

$ mkdir /tmp/foo; cd /tmp/foo; git init
Initialized empty Git repository in /tmp/foo/.git/

$ git branch

コマンドが出力を提供しない、またはマスターブランチを表示しないのはなぜですか?

4

3 に答える 3

8

TL; DR

ブランチヘッドはまだ存在しません。

詳細な説明

最初のコミットを行うまで、Gitリポジトリにはブランチがありません。新しく初期化されたリポジトリはHEADをrefs/heads / masterに設定しますが、最初のコミットが行われるまで、refs / heads / masterは存在しないか、コミットポインタを含みません。

コミット中に、Gitはsymbolic-ref HEADを逆参照して現在のブランチのヘッドを見つけ、git-commit-treeによって提供されるコミットハッシュでそのヘッドを更新します。

最終結果はgit branch、新しいリポジトリでレポートするものが何もないということです。ブランチヘッドが存在しない場合は、終了ステータスがゼロでサイレントに終了します。

関連項目

  • git-branch(1)
  • git-commit-tree(1)
  • git-symbolic-ref(1)。
  • git-update-ref(1)
  • gitcore-tutorial(7)
于 2012-06-18T06:34:29.820 に答える
2

ブランチは単にコミットへのポインターであることに注意してください。
空のリポジトリ (空のツリーを含む) にはコミットがないため、ブランチはありません。

を参照するため、最初のコミットで「 master」という名前のブランチが作成されます。( 以外の)別のブランチ で最初のコミットを作成する必要がある場合は、最初に HEAD のシンボリック ref を変更する必要があります (このスレッドで詳しく説明されています)。HEADrefs/heads/master
master

git symbolic-ref HEAD refs/heads/non-master 

そして、最初のコミットを行います。

于 2012-06-18T07:55:05.163 に答える
0

はい、最初に実行する必要があります

$ git add .
$ git commit -m 'first commit'

コマンド。

于 2012-06-18T06:45:06.100 に答える