ローカルとリモートの両方のGitリポジトリのマスターブランチの名前を変更するで説明されているように、リモートブランチの名前を変更したくありません。
リモートブランチにプッシュされていないローカルブランチの名前を変更するにはどうすればよいですか?
リモートブランチの名前も変更する必要がある場合:
Gitローカルとリモートブランチの両方の名前を変更するには
ローカルとリモートの両方のGitリポジトリのマスターブランチの名前を変更するで説明されているように、リモートブランチの名前を変更したくありません。
リモートブランチにプッシュされていないローカルブランチの名前を変更するにはどうすればよいですか?
リモートブランチの名前も変更する必要がある場合:
Gitローカルとリモートブランチの両方の名前を変更するには
回答:
ブランチをポイントしているときにブランチの名前を変更する場合は、次のようにします。
git branch -m <oldname> <newname>
現在のブランチの名前を変更したい場合は、次のようにします。
git branch -m <newname>
これを覚えておく方法-m
は、mv
ファイルの名前を変更する「移動」(または)の方法です。エイリアスを追加することも役立ちます。これを行うには、以下を実行します。
git config --global alias.rename 'branch -m'
Windowsまたは大文字と小文字を区別しない別のファイルシステムを使用していて、名前の大文字と小文字のみが変更されている-M
場合は、を使用する必要があります。それ以外の場合、gitはブランチが既に存在するというエラーをスローします。
git branch -M <newname>
git push -f --mirror
と、リモートのブランチの名前が変更されますが、このメソッドは、リモートが現在のリポジトリのコピーになるだけの場合にのみ使用してください。次の質問も参照してください:stackoverflow.com/questions/1526794/git-rename-remote-branch
push.default
に構成されているかに依存します。デフォルト(matching
)では、名前が一致するリモートにプッシュします。あなたがしなければならないgit push origin <newname>:<oldname>
か、新しいリモートブランチを作成します。しかし、もしpush.default
に設定されupstream
、その後、次のことが可能push origin head
との事は、リモート上のOLDNAMEに行きます。
mv
ファイル名を変更するためのUnixの規則に従って、おそらく「移動」の略です。これは、ディレクトリベースのiノードファイルシステムでの移動と名前の変更がまったく同じであるためです。
-m
オプションの長い名前はです--move
。たとえば、git branch --move master
現在のブランチの名前を「マスター」に変更します。
git branch -m old_branch_name new_branch_name
上記のコマンドはブランチ名を変更しますが、名前が変更されたブランチを使用する場合は、それに関連付けられている古いアップストリームブランチがある場合はそれを引き続き参照するため、使用には十分注意する必要があります。
ローカルブランチの名前をnew_branch_name(名前の例)に変更した後で、いくつかの変更をマスターにプッシュする場合:
git push origin new_branch_name:master
(変更はマスターブランチに適用されますが、ローカルブランチ名はnew_branch_nameです)
詳細については、「Gitでローカルブランチ名を変更する方法」を参照してください。
現在のブランチの名前を変更するには:
git branch -m <newname>
ブランチの名前を変更する手順は次のとおりです。
git branch -m <new_name>
git push origin :<old_name>
git push origin <new_name>:refs/heads/<new_name>
編集(2017年12月1日):コマンドを実行git status
し、新しく作成されたブランチが古いブランチではなく、独自のリファレンスを指していることを確認してください。古いブランチへの参照が見つかった場合は、次を使用してアップストリームの設定を解除する必要があります。
git branch --unset-upstream
ブランチが完了したら、ブランチの名前を変更すると便利です。その後、新しいものが登場し、削除して新しいブランチを作成するのではなく、同じブランチで開発したいと考えています。
私の経験から、Gitのローカルブランチとリモートブランチの名前を変更するには、次の手順を実行する必要があります。
複数の状態からの引用-gitでローカルブランチとリモートブランチの名前を変更する
名前を変更したいブランチにいる場合:
git branch -m new-name
別のブランチにいる場合:
git branch -m old-name new-name
git push origin :old-name new-name
git push origin -u new-name
git push origin :old-name new-name
正しく実行したときに問題が発生しましたか?
これまでの答えは正しかったですが、ここにいくつかの追加情報があります:
'-m'(移動)を使用してブランチの名前を安全に変更できますが、同じ名前の既存のブランチがすでに存在する場合でも、名前の変更を強制するため、 '-M'を使用する場合は注意が必要です。以下は、 'git-branch'のmanページからの抜粋です。
-mまたは-Mオプションを使用
<oldbranch>
すると、に名前が変更され<newbranch>
ます。<oldbranch>
対応するreflogがあった場合、それはmatch<newbranch>
に名前変更され、ブランチの名前変更を記憶するためにreflogエントリが作成されます。<newbranch>
存在する場合は、-Mを使用して、名前の変更を強制する必要があります。
-M
フラグはまた、あなただけの変更例えば、支店名の大文字と小文字を修正している場合は名前の変更を強制するのに便利ですmyBranch
しMyBranch
。(で-m
、gitはを返しますfatal: A branch named 'MyBranch' already exists.
)
私はハイフンで始まるブランチに愚かな名前を付け、その後マスターをチェックアウトしました。削除したくなかった自分のブランチ、その中で作業していました。
これらはどちらも機能しませんでした:
git checkout -dumb-name
git checkout -- -dumb-name
"
s、'
s、\
sも役に立ちませんでした。 git branch -m
動作しません。
これが最終的に修正した方法です。作業コピーの.git / refs / headsに移動し、ファイル名「-dumb-name」を見つけて、ブランチのハッシュを取得します。次に、これをチェックアウトし、正しい名前で新しいブランチを作成し、古いブランチを削除します。
git checkout {hash}
git checkout -b brilliant-name
git branch -d -- -dumb-name
reflog
名前の変更remote
をGitHubと同様に複製するための3つのステップ:
ステップ1 git branch -m old_branchname new_branchname
ステップ2 git push origin :old_branchname new_branchname
ステップ3 git push --set-upstream origin new_branchname
git push --set-upstream origin new_branchname
これは@Nomadeの回答で言及されています
次のコマンドを使用して、ブランチの名前を変更します。
git branch -m [old_branch_name] [new_branch_name]
-m
:ブランチの名前を変更/移動します。すでにブランチがある場合は、エラーが発生します。
すでにブランチがあり、そのブランチで名前を変更したい場合は、以下を使用します。
git rename -M [old_branch_name] [new_branch_name]
ヘルプの詳細については、ターミナルで次のコマンドを使用してください。
git branch --help
または
man git branch
名前を変更したいブランチにいる場合:
git branch -m new-name
別のブランチにいる場合:
git branch -m old-name new-name
git push origin :old-name new-name
git push origin -u new-name
または、そのための迅速な方法として、次の3つのステップを使用できます。
#ローカルでブランチの名前を変更
git branch -m old_branch new_branch
#古いリモートブランチを削除します
git push origin :old_branch
#新しいブランチをプッシュし、ローカルブランチを設定して新しいリモートを追跡します
git push --set-upstream origin new_branch
リファレンス:https ://www.w3docs.com/snippets/git/how-to-rename-git-local-and-remote-branches.html
以下が3つのステップです。端末内で呼び出してブランチ名を変更できるコマンド。
git branch -m old_branch new_branch # Rename branch locally
git push origin :old_branch # Delete the old branch
git push --set-upstream origin new_branch # Push the new branch, set local branch to track the new remote
さらに必要な場合は、ステップバイステップで、Gitブランチ名を変更する方法を参照してください。
おそらく他の人が言及しているように、これはブランチの命名でケースの不一致になるでしょう。
あなたがそのような状況にある場合、私はあなたがWindowsを使用していると推測できます。
$ git branch -m CaseSensitive casesensitive
fatal: A branch named 'casesensitive' already exists.
次に、中間ステップを実行する必要があります。
$ git branch -m temporary
$ git branch -m casesensitive
これ以上何もない。
-M
代わりに-m
を使用して、このような「ケーシングフィックス」の名前変更を1つのステップで実行できます。
質問(少なくともタイトル)に明確に答えようとする。
ローカルブランチの名前を変更することもできますが、リモートで古い名前を追跡し続けます。
git branch -m old_branch new_branch
git push --set-upstream origin new_branch:old_branch
これで、を実行するgit push
と、リモートold_branch
参照がローカルで更新されますnew_branch
。
この構成を知って覚えておく必要があります。しかし、リモートブランチの名前を選択できなくても、それが気に入らない場合に役立ちます(つまり、非常に優れています。理由!)ローカルブランチの名前。
フェッチ構成を操作すると、ローカルのリモート参照の名前を変更することもできます。つまり、refs/remote/origin/new_branch
ブランチへのrefポインタがあり、実際にはold_branch
on origin
です。しかし、あなたの心の安全のために、私はこれを強くお勧めしません。
SourceTreeを使用したい場合(強くお勧めします)、ブランチを右クリックして[名前の変更]を選択できます。
別のオプションは、コマンドラインをまったく使用しないことです。SourceTreeなどのGit GUIクライアントは、このような質問をStack Overflowで最もよく見られるようにする構文上の学習曲線/苦痛の多くを。
SourceTreeで、左側の[ブランチ]ペインのローカルブランチを右クリックし、[名前の変更...]を選択します。
ブランチをリモートサーバーにプッシュしたくないので、この例は役に立ちます:
「my-hot-feature」という既存のブランチがあり、その名前を「feature-15」に変更したいとします。
まず、ローカルブランチを変更します。これは簡単なことではありません:
git branch -m my-hot-feature feature-15
詳細については、ローカルおよびリモートでGitのブランチの名前を変更するをご覧ください。
Gitブランチの名前変更は、以下を使用して実行できます。
git branch -m oldBranch newBranch
git branch -M oldBranch ExistingBranch
-mと-Mの違い:
-m:あなたが使用して、既存の支店名を使用してブランチの名前を変更しようとしている場合は-mを。ブランチが既に存在するというエラーが発生します。一意の名前を付ける必要があります。
だが、
-M:これは、たとえ存在していても、指定された名前で強制的に名前を変更するのに役立ちます。したがって、既存のブランチはそれで完全に上書きされます...
これがGitターミナルの例です、
mohideen@dev:~/project/myapp/sunithamakeup$ git branch
master
master0
new_master
test
* test1
mohideen@dev:~/project/myapp/sunithamakeup$ git branch -m test1 test
fatal: A branch named 'test' already exists.
mohideen@dev:~/project/myapp/sunithamakeup$ git branch -M test1 test
mohideen@dev:~/project/myapp/sunithamakeup$ git branch
master
master0
new_master
* test
mohideen@dev:~/project/myapp/sunithamakeup$
あなたがしたい場合は:
git branch -m <oldname> <newname>
git push origin: old-name new-name
git commit <newname>
git push origin new_branch_name:master
git status
git checkout
これまでの答えはすべてについて話していgit branch -m
ます。もちろん操作は簡単ですが、私にとっては、別のGitコマンドを覚えるのが少し難しいかもしれません。だから、慣れ親しんだコマンドで仕事を終わらせようとした。ええ、あなたはそれを推測したかもしれません。
使用しますgit branch -b <new_branch_name>
。古いブランチを保存したくない場合は、実行git branch -D <old_branch_name>
して削除できます。
少々面倒かもしれませんが、理解して覚えるのは簡単です。お役に立てれば幸いです。
あなたがしなければならないすべては3つのステップです: