Gitのブランチ名を変更する方法(ローカルとリモート)
Gitのブランチ名を変更する
Gitのブランチ名変更:ローカル、リモート、GitHubのデフォルト | We.Inc
ローカルでgitのブランチ名を変更し、新しい名前をプッシュし、古いリモートブランチを削除し、上流の追跡設定を直すための正確なコマンドを生成します。GitHubでのmainの名前変更にも対応しています。
今いるブランチの名前を変えるには、git branch -m new-nameを実行します。別のブランチなら、git branch -m old-name new-nameを実行します。Gitはリモート上のブランチ名を変更できないので、git push -u origin new-nameで新しい名前をプッシュしてから、git push origin --delete old-nameで古いほうを削除します。
状況別の名前変更コマンド
- 現在のブランチの名前を変える
- git branch -m new-name
- 別のブランチの名前を変える
- git branch -m old-name new-name
- 既存の名前を上書きする
- git branch -M old-name new-name
- 新しい名前を公開して追跡する
- git push -u origin new-name
- リモートから古い名前を削除する
- git push origin --delete old-name
- 他の人が名前を変えた後にクローンを直す
- git branch -u origin/new-name new-name
ローカルでの名前変更はコマンド1つで済みます。つまずきやすいのはリモートで、リモートブランチはその場で名前を変えることができず、置き換えるしかありません。下に古い名前と新しい名前を入力すると、あなたの状況に合ったコマンドが表示されます。チームメンバーが後で実行すべきことや、ブランチがGitHubのデフォルトである場合の追加手順も含まれます。
- 古い名前、新しい名前、リモート(通常はorigin)を入力します。
- 今そのブランチにいるか、すでにリモートに存在するかにチェックを入れます。
- コマンドを順番に実行します。ビルダーは、プッシュ、削除、上流の修正を必要な場合にだけ追加します。
- チームメンバー向けのブロックを、クローンを持っている他の人に送ります。
- 古い名前を削除する前に新しい名前をプッシュしましょう。そうすれば、開いているプルリクエストやCIの実行から、ブランチが完全に消えてしまうことはありません。
- GitHubでは、共有ブランチの名前はブランチのページから変更するのがおすすめです。開いているプルリクエストの対象を付け替え、古いURLもリダイレクトしてくれます。
- CIのワークフロー、デプロイ設定、スクリプトで古い名前を検索しましょう。GitHubによると、古い名前を参照しているActionsのワークフローは更新されません。
- git branch -mはブランチのreflogの名前も変えるので、ローカルでの移動履歴も新しい名前に引き継がれます。
よくある質問
リモートブランチの名前を直接変更できますか?
通常のgitではできません。新しい名前でブランチをプッシュし、古い名前を削除します。GitHubのWeb画面ならサーバー上でブランチ名を変更でき、プルリクエストやリンクもそのまま使えます。
-mと-Mの違いは何ですか?
-mは、新しい名前のブランチがすでに存在すると変更を拒否します。-Mは--move --forceの省略形で、既存のブランチを置き換えます。どちらも、同じリポジトリの別のワークツリーでチェックアウトされているブランチの名前は変更しません。
GitHubでmasterをmainに変更するには?
GitHubのリポジトリでBranchesを開き、masterの名前変更を選んでmainと入力します。デフォルトブランチの名前変更には管理者権限が必要です。その後、全員がGitHubに表示される4つのコマンドを実行します。ローカルでの名前変更、フェッチ、上流の設定、originのHEADの更新です。
git pushがまだ古いブランチ名に送られるのはなぜですか?
名前を変えたブランチが、まだ古い上流を追跡しているからです。一度-u付きでプッシュするか、git branch -u origin/new-nameを実行すると、以降のプッシュとプルは新しい名前を使います。
GitHubで名前を変えたときに更新されるもの
- GitHubは古い名前を含むWebのURLをリダイレクトし、ブランチ保護を新しい名前に移し、そのブランチを対象にした開いているプルリクエストと下書きのリリースの対象を付け替えます。生ファイルのURLはリダイレクトされません。
- 書き込み権限があれば通常のブランチの名前は変更できますが、デフォルトブランチや保護されたブランチの名前変更には管理者権限が必要で、組織のルールセットでさらに制限されることもあります。
後で問題になる名前を避ける
- 小文字、数字、ハイフン、そしてグループ分け用のスラッシュだけを使いましょう。例えばfix/login-timeoutです。Gitは、空白、2つ続いたドット、末尾のドットやスラッシュ、先頭のダッシュ、または~ ^ : ? * [ とバックスラッシュのいずれかを含む名前を拒否します。
名前変更の最初から最後まで
プッシュ済みのブランチの名前をすべての場所で変更する
ローカルで名前を変え、追跡付きで新しい名前を公開し、古いリモートブランチを削除します。
GitHubで名前を変えた後にチームメンバーが実行すること
GitHubが既存のクローンを更新する手順として挙げているもので、古くなったリモートブランチの任意の後片付けも含みます。
名前変更コマンドビルダー
現在のブランチ名
新しいブランチ名
リモート
今このブランチにいる
このブランチはリモートに存在する
あなたが実行するコマンド
チームメンバーが実行するコマンド
チームメンバーに伝えることはありません:このブランチは一度もプッシュされていません。
有効なブランチ名ではありません。ページの下にある命名ルールを確認してください。
新しい名前が古い名前と同じです。
無料で始める · クレジットカード不要
関連: ガイド|Webマーケティングと集客を学ぶ
製品
ご利用いただける方
機能
リソース
会社情報
サイトマップを見る