1. ホーム
  2. git

[解決済み] Gitブランチの名前をローカルとリモートで変更できますか?重複

2022-07-15 06:24:33

質問

リモートブランチにすでに多くのコミットがプッシュされている場合でも、ローカルで Git ブランチの名前を変更してリモートブランチにプッシュする方法はありますか?

あるいは、新しいローカルブランチを作成し、古いローカルブランチを削除してから、リモートリポジトリでこの操作を繰り返す必要があるのでしょうか。

どのように解決するのですか?

はい。

機能 move が存在し、ローカルでブランチの名前を変更する

git branch --move <old_name> <new_name>

が、それをプッシュするには、古いものを削除して新しいものをプッシュする必要があります。

git checkout <new_name>
git push origin [--set-upstream] <new_name>
git push origin --delete <old_name>

--set-upstream はオプションで、新しいローカルブランチがプッシュされたブランチを追跡するように設定します。

以下のショートハンドを使うことができます。

  • ローカルに移動する (--move) :

      git branch -m <old_name> <new_name>
    
    
  • 新しいブランチをプッシュする (--set-upstream, オプション) :

      git push origin [-u] <new_name>
    
    
  • delete (--delete) :

      git push origin -d <old_name>
    
    

NBです。

torekさんのコメントに感謝します。

ところで、言及する価値のあることは、あなたが

  1. 上流を共有する他のユーザーに、この操作を行うことを通知し
  2. 示された順序でこれを行います (新しい名前を設定し、古い名前を削除します)。

1の理由は、それらのユーザーが調整する必要があるからです。

2の理由は主に効率です。ブランチ削除時にコミットを削除する上流レポにオブジェクトを再コピーする必要がなくなるからです(ほとんどのベアリポジトリはそうですし、プッシュを受け入れるほとんどのレポジトリはベアリポジトリです)。