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


295

Gitリポジトリの既存のブランチの名前を変更するにはどうすればよいですか?

現在のブランチに新しい名前を付けたい。


2
@Alexの回答を受け入れるか、それを受け入れたくない理由を言ってください。
チャーリーパーカー

1
これはおそらく、これはアレックスの唯一の問題だったという事実とは何かを持っている、と彼はおそらく以来、ログインしていない@CharlieParker:「午後9時29分で2月3日'11最後に見られ、」
黄聖人

13
@JB OMGあなたは彼に何かが起こったかもしれないと言っていますか??? !!!!!!!!!
14

1
これに対する投票率の高い回答は受け入れられますか?
Steve Chambers

回答:


465

現在、名前を変更するブランチにいると仮定します。

git branch -m newname

これは、のマニュアルに記載されてgit-branchいます。

man git-branch

または

git help branch

具体的には、コマンドは

git branch (-m | -M) [<oldbranch>] <newbranch>

パラメータは次のとおりです。

   <oldbranch>
       The name of an existing branch to rename.

   <newbranch>
       The new name for an existing branch. The same restrictions as for <branchname> apply.

<oldbranch> 現在のブランチの名前を変更する場合は、オプションです。


10
またはgit branch -m other-branch renamed-other-branchそうでない場合。
mipadi

32
また、古いブランチをリモートにプッシュした場合は、でそれを削除できますgit push origin :branchname。これにより、新しいものをプッシュして古いものを削除し、基本的にリモートで名前を変更することができます。
ジョナサン

1
@mipadi、新しいブランチを作成し、以前のブランチを削除しません。
モハマドアリフ2015

gitブランチ(-m | -M)[<oldbranch>] <newbranch>機能しなかったため、構文エラーが発生しました。
モハマドアリフ2015

@MohammedArifを使用する-mと、古いブランチの名前が変更されるため、以前のブランチ削除されます。
Richard Fearn

177

現在ブランチ名を変更している場合:

git branch -m new_name 

または他の場合:

git branch -m old_name new_name 

以下で確認できます:

git branch -a

ご覧のとおり、ローカル名のみが変更されました。リモートでも名前を変更するには、次のようにする必要があります。

git push origin :old_name

これでブランチが削除され、新しい名前でアップロードされます。

git push origin new_name

出典:https : //web.archive.org/web/20150929104013/http : //blog.changecong.com : 80 / 2012 /10/ rename-a-remote-branch-on-github


13
私はこれが正しい答えだと思います。RichardFeamによる投票数の多い回答はローカルリポジトリのみをカバーしています。これはリモートリポジトリをカバーしています。
user1145404

4
上記のコメントに同意すると、この回答は私の場合より完全でした。また、この回答に記載されているすべての手順を実行した後、リモートブランチに追加のコミットをプッシュすると、gitはold_nameブランチに再度プッシュしようとしました。幸い、gitはコマンドラインで修正を提供しました:git-branch --unset-upstream。この後、プッシュされたコミットはすべてnew_nameリモートブランチに送られました。
Hans Roerdinkholder

2
この方法では、Aが解決するgit pushという警告を出してしまうため、プッシュする能力を失うことに注意してください。Your branch is based on 'old_name, but the upstream is gone.git push -u origin new_name
netalex
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.