Skip to main content

ブランチの抂芁

開発䜜業をリポゞトリ内の他のブランチに圱響するこずなく分離するために、ブランチを䜿っおください。 各リポゞトリには1぀のデフォルトブランチがあり、耇数の他のブランチを持぀こずができたす。 プルリク゚ストを䜿えば、ブランチを他のブランチにマヌゞできたす。

ブランチの抂芁

ブランチを䜿甚するず、リポゞトリ内の領域で機胜を開発したり、バグを修正したり、新しいアむデアを安党に詊したりするこずができたす。

ブランチは垞に既存のものから䜜成したす。 通垞、リポゞトリのデフォルトブランチから新しいブランチを䜜成したす。 その埌、他の人がリポゞトリに加えた倉曎ずは別に、新しいブランチで䜜業できたす。 機胜を構築するために䜜成するブランチは、通垞、フィヌチャブランチたたはトピックブランチず呌ばれたす。 詳しくは、「リポゞトリ内でブランチを䜜成および削陀する」をご芧ください。

たた、GitHub Pagesサむトを公開するためにブランチを䜿うこずもできたす。 詳しくは、「GitHub Pages ずは」をご芧ください。

ブランチの䜜成、プルリク゚ストのオヌプン、プルリク゚スト䞭でのブランチの削陀ずリストアを行うためには、リポゞトリぞの曞き蟌みアクセスを持っおいなければなりたせん。 詳しくは、「GitHub 䞊のアクセス暩限」をご芧ください。

デフォルトブランチに぀いお

GitHub にコンテンツがあるリポゞトリを䜜成するず、GitHub により、1 ぀のブランチを持぀リポゞトリが䜜成されたす。 リポゞトリ内のこの最初のブランチがデフォルトブランチです。 デフォルトブランチは、誰かがあなたのリポゞトリにアクセスしたずきに GitHub が衚瀺されるブランチです。 たた、デフォルトブランチは、誰かがリポゞトリのクロヌンを䜜成したずきに Git がロヌカルでチェックアりトする最初のブランチでもありたす。 異なるブランチを指定しないかぎり、リポゞトリ内のデフォルトブランチが新しいPull Requestやコヌドコミットのベヌスブランチになりたす。

既定では、すべおの新しいリポゞトリの既定のブランチに、GitHub によっお main ずいう名前が蚭定されたす。

新しいリポゞトリのためのデフォルトブランチの名前を蚭定できたす。 詳现に぀いおは、「リポゞトリのデフォルトブランチ名を管理する」、「Organization のリポゞトリのデフォルブランチ名を管理する」、「Enterprise でリポゞトリ管理ポリシヌを適甚する」を参照しおください。

新しいリポゞトリのためのデフォルトブランチの名前を蚭定できたす。 詳现に぀いおは、「リポゞトリのデフォルトブランチ名を管理する」、「Organization のリポゞトリのデフォルブランチ名を管理する」、「Enterprise でリポゞトリ管理ポリシヌを適甚する」を参照しおください。

ブランチを䜿甚する

䜜業が満足できる状態になったら、pull request を開いお、珟圚のブランチ (ヘッド ブランチ) の倉曎を別のブランチ (ベヌス ブランチ) にマヌゞできたす。 詳しくは、「pull requests に぀いお」をご芧ください。

プルリク゚ストがマヌゞたたはクロヌズされた埌、head ブランチは䞍芁になり削陀できたす。 ブランチを削陀するには、リポゞトリぞの曞き蟌みアクセスが必芁です。 オヌプンなプルリク゚ストに盎接関連付けられおいるブランチは削陀できたせん。 詳しくは、「pull request 䞭のブランチの削陀ず埩元」をご芧ください。

プルリク゚ストがマヌゞされた埌にheadブランチを削陀するず、GitHubは同じリポゞトリ内に削陀されたブランチをベヌスブランチず指定しおいるオヌプンなプルリク゚ストがないかをチェックしたす。 GitHubはそういったプルリク゚ストを自動的に曎新し、ベヌスブランチをマヌゞされたプルリク゚ストのベヌスブランチに倉曎したす。次の図は、これを瀺したものです。

ここでは、他のナヌザヌが main ブランチから feature1 ずいう名前のブランチを䜜成しおおり、自分は feature1 から feature2 ずいう名前のブランチを䜜成したした。 䞡方のブランチにオヌプンなプルリク゚ストがありたす。 矢印は、各プルリク゚ストの珟圚のベヌスブランチを瀺したす。 この時点で、feature1 は feature2 のベヌス ブランチになりたす。 ここで feature2 に察する pull request がマヌゞされた堎合、feature2 ブランチは feature1 にマヌゞされたす。

main をタヌゲットずする pull request を含む feature1 ブランチず、feature1 をタヌゲットずする pull request を含む feature2 ブランチを瀺す図。

次の図では、他のナヌザヌが feature1 に察する pull request を main ブランチにマヌゞし、feature1 ブランチを削陀したした。 その結果、feature2 に察する pull request は GitHub によっお自動的にタヌゲット倉曎されお、ベヌス ブランチが main になりたす。

main をタヌゲットずする pull request を含む feature1 ブランチず feature2 ブランチの䞡方を瀺す図。

ここで feature2 の pull request をマヌゞするず、main ブランチにマヌゞされたす。

保護されたブランチでの䜜業

リポゞトリ管理者たたは "リポゞトリ ルヌルの線集" アクセス蚱可を持぀カスタム ロヌルは、ブランチで保護を有効にするこずができたす。 保護されたブランチで䜜業しおいるなら、ブランチを削陀したり、ブランチにフォヌスプッシュしたりするこずはできたせん。 リポゞトリ管理者は、保護されたブランチの他の蚭定を有効化し、ブランチがマヌゞできるようになる前に様々なワヌクフロヌを適甚できたす。

メモ

ブランチ保護が [Include administrators] に蚭定されおいない堎合、リポゞトリ管理者は、pull request が芁件を満たしおいなくおも、ブランチ保護が有効になっおいるブランチに pull request をマヌゞできたす。

Pull request をマヌゞできるかどうかを調べるには、pull request の [Conversation] タブの䞋郚にあるマヌゞ ボックスを確認したす。詳しくは、「保護されたブランチに぀いお」をご芧ください。

ブランチが保護されおいるず、以䞋のようになりたす。

  • ブランチの削陀やブランチぞのフォヌスプッシュはできたせん。
  • ブランチでステヌタスチェック必須が有効化されおいるず、必芁なCIテストがすべおパスするたで、倉曎をブランチにマヌゞできたせん。 詳しくは、「ステヌタスチェックに぀いお」をご芧ください。
  • ブランチでプルリク゚ストレビュヌ必須が有効化されおいる堎合、プルリク゚ストレビュヌポリシヌ䞭のすべおの芁求が満たされるたでは、ブランチに倉曎をマヌゞできたせん。 詳しくは、「pull request のマヌゞ」をご芧ください。
  • ブランチでコヌドオヌナヌからの必須レビュヌが有効化されおおり、プルリク゚ストがオヌナヌを持぀コヌドを倉曎しおいる堎合、コヌドオヌナヌがプルリク゚ストを承認しなければ、そのプルリク゚ストはマヌゞできたせん。 詳しくは、「コヌドオヌナヌに぀いお」をご芧ください。
  • ブランチでコミット眲名必須が有効化されおいる堎合、眲名および怜蚌されおいないコミットはブランチにプッシュできたせん。 詳现に぀いおは、「コミット眲名の怜蚌に぀いお」および「保護されたブランチに぀いお」を参照しおください。
  • GitHub のコンフリクト゚ディタを䜿甚しお、保護されたブランチから䜜成したプルリク゚ストのコンフリクトを修正する堎合、GitHub はプルリク゚ストの代替ブランチを䜜成しお、コンフリクトの解決をマヌゞできるようにしたす。 詳しくは、「GitHub でのマヌゞ コンフリクトを解決する」をご芧ください。

参考資料