200

HEADmasterGitの違いは何ですか?

GitHubでプロジェクトのクローンを作成し、変更をリモートにプッシュしたいと思います。しかし、どちらにプッシュする必要がありますか?

スクリーンショット

4

3 に答える 3

173

masterブランチの終わりへの参照です。慣例により(そしてデフォルトで)、これは通常メインの統合ブランチですが、そうである必要はありません。

HEAD実際には、別の参照を指す特別なタイプの参照です。指してmaster いる場合とそうでない場合があります(現在チェックアウトされているブランチを指します)。ブランチにコミットしたいことがわかっている場合は、masterこれにプッシュします。

視覚的な例を次に示します。

代替テキスト

独自のリポジトリで、HEADこれを実行することにより、が指している場所を確認できます。

$ git symbolic-ref HEAD
refs/heads/master

ただし、remotes/origin/HEADが指している場所を見つけるのは、リモートマシン上にあるため、より注意が必要です。

ここにgitリファレンスに関する素晴らしい小さなチュートリアルがあります:

http://people.gnome.org/~federico/news-2008-11.html#pushing-and-pulling-with-git-1

于 2010-12-08T12:27:42.837 に答える
46

簡単な答えは、HEAD現在のブランチの最新のコミットへのポインター/ラベルです。masterは、git リポジトリを初期化したときに作成されるデフォルトのブランチです (例: git init)。

masterブランチを削除できます(例: git branch -D master)。HEADポインターを削除することはできません。

于 2015-09-24T15:24:57.407 に答える
8

現在のブランチの変更をプッシュするだけです

git push origin

Bそして、ブランチ ' ' の変更を ' 'にプッシュしますorigin/B
ブランチにいる場合master、git は にプッシュしorigin/masterます。
実際には、一致するリモート ブランチが にあるローカル ブランチにすべての変更をプッシュしますorigin。これは、構成設定push.defaultによって制御されます。Pro Git book の Push RefSpecs
も参照してください。


表示されているのは、GitX プロジェクトの実験的な GitX フォークにあるリモート リポジトリのすべての refspec を表すサイドバーです。

代替テキスト

HEAD、そのリモートのデフォルト ブランチを指定します。マンページ
を参照してください:git remote set-head

リモートにデフォルトのブランチを用意する必要はありませんが、特定のブランチの代わりにリモートの名前を指定できます。
たとえば、 のデフォルト ブランチoriginが に設定されている場合masterorigin通常は を指定する場所に を指定できますorigin/master

于 2010-12-08T11:48:11.033 に答える