どんなソフトウェアやウェブアプリケーションを開発するにしても、ワークフローGitを組み込むことは、ほぼ必須の要件となっています。

特にチームでのコーディングとなると、分散バージョン管理システムが間違いのない選択肢です。Gitはシンプルなコマンドをいくつも備えており、すぐに使いこなすことができます。しかし、必ずしも直感的とは言えません。

ブランチでgit renameのような操作を行う場合には、慎重に手順を検討する必要があります。

チームワークには十分なコミュニケーションが必須であり、ブランチ名には、公開する以上、十分な説明と明確さが求められます。素早く効率的に仕事をこなす中でも、これをしっかりと意識する必要があるのです。そのため、ブランチ名について、プロジェクトを進める中で細かな調整が必要になることは決して珍しくないでしょう。

この記事では、ブランチに対してgit renameを実行する方法をご紹介します。まず最初に、Gitにおけるブランチを理解し、そしてブランチ名を変更するケースを見てみましょう。

Gitブランチとは(+名前変更の必要性)

Gitのバージョン管理は、ブランチを使って行われ、プライマリ(「main」等)リポジトリにはプロジェクトのさまざまなブランチが格納されます(これについては後で説明します)。

Gitを使う利点のひとつは、メインのブランチを複製してコードを調整し、後からその変更内容をマージできることです。

Kinstaでも、GitとSecure Shell(SSH)を使ってサイトにアクセスすることができます。それどころか、コントロールパネル「MyKinsta」からGitHubのリポジトリに接続し、ものの数クリックでアプリケーションをデプロイすることが可能です。

GitHubでKinstaを認証する
GitHubでKinstaを認証する

ブランチの命名は案外軽視されがちですが、Gitでブランチ名を変更するケースや理由は複数考えられます。

  • 明確であること:ブランチには、どのようなコード変更が含まれていて、それが何をするものなのか明確にわかるようにしましょう。マージやブランチの削除の際に重要です。間違ったブランチを削除してしまったり、ブランチの名前を忘れてしまったりしては元も子もありません。
  • 一貫性:ブランチ名がチームで設定した命名規則に従っていない場合には、ブランチの名前を後で修正する必要があります。
  • 最新の標準:プロジェクトがレガシーなものであったり、チーム内で長期的な管理が必要であったりする場合には、ブランチにおける既存の文化的特性を考慮したいところです。例として、奴隷制度への意図しない言及を避けるために、プライマリブランチを「master」から「main」または「trunk」に変更する動きが盛んに行われています。

これらの理由(※この他にも可能性はありますが)により、ブランチでgit renameを実行することがあります。

次に、その方法を説明します。

Gitブランチ名を変更する方法

ブランチ上でgit renameを実行する場合、ローカルとリモート(例:GitHub)の両方のリポジトリを考慮する必要があります。だからこそ、これから説明するプロセスでは、すべての組み合わせを網羅していきます。

まず、ブランチの場所を特定し、名前を変更する方法について説明します。この際に役立つコマンドフラグを活用することになります。次に、リモートリポジトリがローカルリポジトリと一致しているかどうか確認する方法にも触れます。

1. git checkoutgit branchコマンドを使用する

最初に、名前を変更したいブランチの場所を指定します。これには次のコマンドを使用します。

git checkout current-name

current-nameの部分を書き替え、ブランチの名前を指定します。名前がわからない場合や、ブランチ一覧を見る場合には(プロジェクト全体の規則を確認したい時など)、git branch --listまたはgit branch -aを使用できます。

Gitリポジトリ内のブランチに移動し一覧表示する
Gitリポジトリ内のブランチに移動し一覧表示する

目的のブランチに移動したら、以下の方法で名前を変更します。

git branch -m new-name

ここでも、プレースホルダーではなく、実際のブランチ名を使用するようにしてください。-mフラグは「移動」を意味し、名前変更を実行するコマンドの要素になります。

Gitリポジトリ内のブランチの名前を変更する
Gitリポジトリ内のブランチの名前を変更する

選択した新しいブランチ名がすでに存在する場合は、代わりに-Mを使って指定した変更を強制することができます。これは、Windows上で、ブランチ名に大文字と小文字が混在している場合に使用する方法でもあります。

この変更を確認したら、git statusを使用して、新しい名前がブランチに適用されているかどうかを確認します。

git statusを使ってGitブランチの名前変更が完了したことを確認する
git statusを使ってGitブランチの名前変更が完了したことを確認する

ただし、git checkoutの利用は必須ではありません。以下で詳しく見てみましょう。

git checkoutを使わずにGitブランチ名を変更する

この方法は、リポジトリのメインブランチでのみ機能します。そうでない場合は、まずgit checkoutでメインブランチに移動する必要があります。

リポジトリ内の現在地はgit statusで確認することができます。ブランチ名を変更するコマンドは前回の方法と似ていますが、今回は既存のブランチ名と新しいブランチ名の両方を組み合わせます。

git branch -m current-name new-name

コマンド実行後、確認としてブランチ一覧を確認することができます。

2. 名前を変更したブランチをリモートリポジトリにプッシュする

この方法はローカルリポジトリには有効ですが、リモートリポジトリについては追加の手順が必要になることがあります。実際のプロジェクトではリモートリポジトリを扱うことが多々ありますので、このステップを忘れないことが重要です。

この手順をスキップすると、新しいブランチは古い「上流」のブランチ名を参照したままになってしまいます。そのため、古いブランチをリモートリポジトリから削除してから、新しいブランチを上流にプッシュするようにしましょう。

ローカルブランチの名前変更から始まり、複数コマンドを順番に実行していきます。

それでは、古いブランチを削除します。

git push origin --delete old-branch

その後、新しいものをプッシュします。

git push origin -u new-branch

別の方法として、以下の方法で上流のブランチ名を上書きすることもできます。

git push origin: old-branch new-branch
git push origin -u new-branch

もう一度、git statusを実行して、新しいブランチが古いブランチではなく、正しく参照していることを確認しましょう。もし古いブランチが参照されている場合には、git branch --unset-upstreamを使って修正することができます。

まとめ

Gitを利用することで、プロジェクトのコードに分散型バージョン管理の概念を直感的に適用することができます。

便利な点として、ローカルリポジトリとリモートリポジトリの両方に応用できます。しかし、ブランチ名の変更など、特定の作業の実行時には特別な手順が必要になります。

この記事では、ローカルとリモート両方のリポジトリに対して、ブランチ名の変更(git rename)を行う方法をご紹介しました。このコマンド自体は簡単ですが、ローカルとリモートのリポジトリが一致するように調整する必要があります。そうしないと、マージしたときにエラーが発生したり、古いリポジトリや存在しないリポジトリを誤って参照したりする可能性があります。

Gitベースのアプリケーションやデータベースのために、安全でユーザーフレンドリーなホスティングをお探しであれば、Kinstaのアプリケーションおよびデータベースホスティングソリューションがおすすめです。フルスタックアプリを含むあらゆる種類やサイズのプロジェクトを念頭に置いて構築されており、GitHub経由でわずか数分でデプロイすることができます。

Googleのプレミアムティアネットワーク、C2マシンを採用することで、お客様のプロジェクトを次のレベルに引き上げます。また、Cloudflare統合により、考えられるあらゆるセキュリティ上の懸念からプロジェクトを保護します。ビルドの同時進行にも対応しています。

Kinstaのアプリケーションホスティングプランをご確認ください。無料利用枠もご用意しています。ご質問やご不明点については、Kinstaの親切丁寧なカスタマーサポートにお問い合わせいただけます。