「master
」以外のデフォルトのブランチ名でGitリポジトリを作成するにはどうすればよいですか?
Git 2.28(2020年第3四半期)を使用します。既存のリポジトリのプライマリブランチの名前と、新しく作成されたリポジトリの最初のブランチに使用されるデフォルトの名前が構成可能になり、最終的にハードコードされたリポジトリから離れることができます。master
'。
そして、GitHubからの2020年8月からのリマインダー:
2020年10月1日に、ユーザー、組織、または企業の新しいリポジトリのデフォルトブランチを変更していない場合は、に自動的に変更さmaster
れmain
ます。
この変更はいつでもオプトアウトできます。
- ユーザーの場合、https://github.com/settings/repositoriesページ
- 組織の所有者の場合、
https://github.com/organizations/YOUR-ORGANIZATION/settings/repository-defaults
ページ
- エンタープライズ管理者の場合、
https://github.com/enterprises/YOUR-ENTERPRISE/settings/member_privileges
ページ
この変更は、デフォルトのブランチの名前を変更したいプロジェクトやメンテナーをサポートするためにGitHubが行っている多くの変更の1つです。
行っている変更の詳細については、github / renamingを参照してください。
しかし、Gitリポジトリ自体に戻っ:(2.28、Q3 2020)を参照してください508fd8eコミット(2020年6月29日)をすることによりĐoànTRANコングDanh( )sgn
。
参照0068f21コミット、a471214コミット、0cc1b47コミット、32ba12dコミット、6069eccコミット、f0a96e8コミット、4d04658コミット(2020年6月24日)、および489947cをコミットすることにより(2020年6月23日)ヨハネスSchindelin( )dscho
。 Don Goodman-Wilson()によるcommit 8747ebb(2020年6月24日)を
参照してください。(合併によりJunio C浜野- -でDEGoodmanWilson
gitster
コミット11cbda2、2020年7月6日)
init
:新しいリポジトリの初期ブランチ名を指定できるようにする
サインオフ:Johannes Schindelin
リポジトリのメインブランチ名を変更したいプロジェクトや企業が増えています(これに関する背景については、MislavMarohnićのツイートを参照してください)。
新しいリポジトリのブランチ名を変更するには、現在、Gitのテンプレートディレクトリをすべてコピーし、目的のデフォルトのブランチ名を.git/HEAD
ファイルにハードコーディングして、init.templateDir
コピーしたテンプレートファイルを指すように構成するしかありません。
このプロセスの煩わしさを大幅に軽減するために、新しいオプションを導入しましょう--initial-branch=<branch-name>
。
git init --initial-branch=hello myLocalRepo
# or
git config --global init.defaultBranch hello
git init myLocalRepo
そして:
init
:構成を介して初期ブランチ名のデフォルトを設定できるようにする
支援者:Johannes Schindelin
支援者:Derrick Stolee
署名者:Don Goodman-Wilson
--initial-branch=<branch-name>
ハードコードされたものとは異なる初期ブランチで新しいリポジトリを初期化できるようにするコマンドラインオプションを導入しました。
ユーザーが最初のブランチ名をより永続的にオーバーライドできるようにするために(つまりgit init
、呼び出しごとに名前を手動で指定する必要がないように)、構成init.defaultBranch
設定を導入しましょう。
注:マージコミットメッセージに関するcommit 489947cは、Git 2.29で元に戻されました。「gitのマージコミットメッセージをカスタマイズするにはどうすればよいですか?」を参照してください。設定が残っています。
init.defaultBranch
これはサブモジュールに影響します。
submodule
:remote..branchが欠落している場合は、リモートのHEADにフォールバックします
支援者:Philippe Blain
サインオフ者:Johannes Schindelin
remote.<name>.branch
が構成されていない場合、git submodule update
現在はブランチ名の使用にフォールバックしmaster
ます。
ただし、はるかに優れたアイデアは、リモートを使用することHEAD
です。適度に新しいGitバージョンを実行しているすべてのGitサーバーで、symrefHEAD
はメインブランチを指します。
注:t7419は、リモートが別のブランチを指している場合でも 、サブモジュールをリモートブランチに更新することを期待するユースケースが存在する可能性があることを示しています。
間違いなく、このパッチは動作をより直感的にしますが、これがあいまいな設定でリグレッションを引き起こす可能性がわずかにあります。 git submodule update --remote
master
HEAD
それでも、移行期間を長くすることなく、この動作を修正しても問題ありません。
- この
git submodule update --remote
コマンドは実際には一般的ではありません。
- このコマンドを実行するときの現在のGitの動作は、リモートリポジトリの現在のブランチがそう でない限り、完全に混乱します
master
(この場合、提案された動作は古い動作と一致します)。
- 動作の変更が原因でユーザーがリグレッションに遭遇した場合、修正は実際には簡単です。に設定
submodule.<name>.branch
するmaster
と、古い動作が復元されます。
Git 2.29(2020年第4四半期)では、のテストcontrib/
は最近の変更に合わせて調整されていることに注意してくださいfmt-merge-msg
。
Emily Shaffer()によるcommit b87528c(2020年8月3日)を参照してください。(合併によりJunio C浜野- -で83b8250コミットし、2020年8月10日)をnasamuffin
gitster
Revert "contrib
::subtree
テストを調整してfmt-merge-msg
「
サインオフ:Emily Shaffer
これにより、コミット508fd8e8baf3e18ee40b2cf0b8899188a8506d07が元に戻ります。
で6e6029a8(fmt-merge-msg
:マージ先は再び省略することを可能にする)、我々は戻って「に対するマージ動作を取得master
」を、デフォルトでは、「含まないinto 'master'
マージメッセージの最後に」。このテスト修正は不要になりました。
また:
Git 2.29(2020年第4四半期)で、テストを更新して単語 ' master
'を削除します。
参照f33f2d3をコミットし、b6211b8をコミット(2020年9月26日)、および432f5e6をコミットし、5a0c32bをコミットし、659288cをコミットすることで(2020年9月21日)ヨハネスSchindelin( )dscho
。
(合併によりJunio C浜野- gitster
-で58138d3コミットし、2020年10月5日)を
tests
:master
ブランチ名のバリエーションを避ける
サインオフ:Johannes Schindelin
この用語にmaster
は、人種的不公正を常に思い出させるものとして役立つ歴史があります。Gitプロジェクトはこれを永続化することを望んでおらず、すでに回避し始めています。
テストスイートは、デフォルト以外のブランチにこの名前のバリエーションを使用します。前のコミットでこれに対処したt3200とは別に、これらのインスタンスは、テストスクリプトの外部で変更を必要としないため、自動化された方法で名前を変更できます。そうしましょう。
タッチされたブランチはデフォルトのブランチとはほとんど関係がないため、完全に別個の命名スキームを使用することを選択しますtopic_<number>
(topic-<number>
t5515test_oid
が用語を含む機械を使用し、機械が内部でシェル変数を使用するため、名前にダッシュを含めることはできません)。
このトリックは、この(GNU)sed呼び出しによって実行されました。
$ sed -i 's/master\([a-z0-9]\)/topic_\1/g' t/t*.sh
そして、まだGit 2.29を使用しています:
Johannes Schindelin()によるcommit 538228e、commit a15ad5d(2020年10月8日)を参照してください。(による合併Junio C浜野- -で62564baをコミット2020年10月8日)dscho
gitster
t1415
:main
参照名としての使用は避けてください
サインオフ:Johannes Schindelin
のフォールバックをinit.defaultBranch
に変更する一連のパッチの準備として、このテストスクリプトで参照名としてmain
使用main
しないでください。
そうしないと、それらの参照をキャッチしたい(man)も予期せずキャッチします。git for-each-ref ... | grep main
refs/heads/main
問題の参照はワークツリーローカルのものであり(つまり、各ワークツリーには、のように独自のものがありますHEAD
)、テストケースではすでに「second
」というセカンダリワークツリーが使用されているため、first
代わりにこれらの参照に「」という名前を使用しましょう。
その間に、代わりに「ワークツリー」を意味するときに「レポ」について説明するテストタイトルを調整します。