Git でブランチの名前を変更する
Git ブランチは、開発者がお互いの作業に影響を与えることなくさまざまな機能に取り組むことができるため、便利です。この記事では、ローカルおよびリモートの Git ブランチの名前を変更する方法を学習します。名前を間違えた場合や、プロジェクトをチーム内でより適切に編成したい場合に備えて。
ローカル Git ブランチの名前を変更する
プロジェクトに取り組んでいて、ブランチ機能に名前を付けているとしましょう。しかし、後で、リリースまたは別の名前に名前を変更する必要があることに気付きました。次のように、rename サブコマンドを使用して名前を変更し、古い名前と新しい名前を渡します。
git branch -m feature release
詳細には、名前を変更するブランチが選択されていることを確認してください。このコマンドを実行して、目的の作業を実行します。
git checkout old-name
したがって、古い名前を目的のブランチの新しい名前に置き換える必要があります。すべてのローカルブランチをリストとして表示する場合は、次のコマンドを実行する必要があります。
git branch --list
名前を変更する適切なブランチを選択したら、以下の手順に従います。Git ブランチコマンドを使用するときは、指定された行に-m オプションを追加します。次に、次のコマンドを実行して、ブランチの名前を変更します。
git branch -m old-name **new**-name
最後に、このコマンドを実行して、すべてのローカル Git ブランチを一覧表示し、名前の変更が正常に行われたことを確認します。
git branch -a
リモート Git ブランチの名前を変更する
これまで見てきたように、すでにパソコンに設定されているローカルブランチの名前を簡単に変更できます。ただし、共有リポジトリにすでに公開されているブランチの名前を変更したい場合があります。Git ではリモートブランチの名前を変更することはできません(技術的にはリモートブランチの名前を任意の名前に変更できますが)。
したがって、名前を変更したいブランチがある場合、ローカルブランチと比較して、名前を変更するためにいくつかの追加の手順を実行する必要があります。
まず、新しい名前で新しいブランチを作成する必要があります。次に、古いものを削除する必要があります。これは、リモートブランチが実際にはサーバー上になく、名前のみがサーバー上にあるためです。パーソナルスペースでローカルに作成および削除する必要があります。
新しいブランチを作成するには、-b
フラグを使用して、ベースとなる既存のブランチを指定できます。新しいブランチを作成したら、-d
フラグとリモートブランチ名を使用して古いブランチを削除できます。
リリースするために名前を変更する必要がある feature
という名前のリモートブランチがあるとします。実行することでこれを行うことができます
git push -d feature release
リモート機能ブランチを削除し、ローカルリリースブランチに置き換えます。そして、共有リポジトリからプルすると、リモートリリースブランチに変更されます。
ワンステップで Git ブランチの名前を変更
幸い、Git にはブランチの名前を変更するためのワンステップコマンドがあります。これは git branch -r
と呼ばれます。実行すると、現在のブランチの名前が指定した新しい名前に変更されます。
git branch -r feature release
これにより、現在のブランチの名前が機能からリリースに変更されます。また、ローカルブランチを master に変更します。このセクションでは、ローカルブランチとリモートブランチの名前を変更する方法を説明しました。
ただし、git ブランチを実行すると、名前が変更されたブランチの古い名前が引き続き表示されることに気付く場合があります。新しい名前を確認したい場合は、git branch -r
コマンドを使用できます。このコマンドは、古い名前と新しい名前を含むすべてのブランチを表示します。
git branch -r release * release master
このセクションでは、ローカルブランチとリモートブランチの名前を変更する方法を説明しました。ただし、最初に新しいブランチを作成してから、古いブランチを削除する必要があるのは少し奇妙でした。
Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.
LinkedIn