web-dev-qa-db-ja.com

githubでブランチの名前を変更する

私はローカルブランチの名前を

git branch -m oldname newname

しかし、これはブランチのローカルバージョンの名前を変更するだけです。 githubで名前を変更するにはどうすればいいですか?

241
enchance

前述のように、Githubで古いものを削除して再プッシュします。ただし、使用するコマンドは必要以上に冗長です。

git Push Origin :name_of_the_old_branch_on_github
git Push Origin new_name_of_the_branch_that_is_local

簡単です。コマンドを少し詳しく説明すると、git Pushコマンドは基本的に次のとおりです。

git Push <remote> <local_branch>:<remote_branch>

そのため、local_branchを指定せずにPushを実行するということは、「ローカルリポジトリから何も取得せずにリモートブランチにする」という意味です。私はいつもこれが完全におかしなものだと思っていましたが、それがやり方です。

編集:Git 1.7 現在、リモートブランチを削除するための代替構文があります。

git Push Origin --delete name_of_the_remote_branch

編集:コメント内の@ void.pointerによって述べられているように

2つのプッシュ操作を組み合わせることができます。

git Push Origin :old_branch new_branch

これにより、古いブランチが削除され、新しいブランチがプッシュされます。

これは、リモートの元のブランチと新しいブランチの名前を引数とする単純なエイリアスに変換できます(~/.gitconfig)。

[alias]
    branchm = "!git branch -m $2 $3 && git Push $1 :$2 $3 -u #"

使用法:

git branchm Origin old_branch new_branch

Shellコマンドの位置引数は、古い(2.8以前の)バージョンのgitでは問題があったため、エイリアスはgitのバージョンによって異なる可能性があります。詳しくは この議論 を参照してください。

268
Adam Parkin

以下のコマンドが私のために働きました:

git Push Origin :old-name-of-branch-on-github
git branch -m old-name-of-branch-on-github new-name-for-branch-you-want
git Push Origin new-name-for-branch-you-want
13

古いブランチを削除して新しいブランチを作成するだけです。

例(単にリモートブランチの名前を変更する):

git Push Origin :refs/heads/oldname
git Push Origin newname:refs/heads/newname

また、おそらくローカルブランチの名前を変更してプッシュ/プル先の設定を変更する必要があります。

13
Vi.

私はあなたがあなたのgitブランチ名を変更する方法を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ローカルブランチとリモートブランチの名前を変更する方法

9

あなたは端末なしでそれをすることができます、あなたはただ新しい名前で枝を作成し、古い後に削除する必要があります。あなたはそれをするためにこの記事を使うことができます。

https://github.com/blog/1377-create-and-delete-branches

3
rneves

この記事では、それを本当に簡単に行う方法を説明します。
1。ローカルのGitブランチの名前を変更するには、Git branch -mコマンドを使って名前を変更します。
git branch -m feature1 feature2
2。リモートGitブランチの名前を変更するコマンドを探しているだけなら、これが
git Push -u Origin feature2:feature3
これを行う前に、ブランチにタグがないことを確認してください。あなたはgit tagでそれをすることができます。

1
Daniel Kobe

私の場合は、追加のコマンドが必要でした
git branch --unset-upstream
私の名前を変更したブランチをOrigin newnameにプッシュするように変更します。

(タイピングを簡単にするために)、私は最初にgit checkout oldnameです。
次に、以下を実行してください。

git branch -m newname
git Push Origin :oldnameまたはgit Push Origin --delete oldname
git branch --unset-upstream
git Push -u Origin newnameまたはgit Push Origin newname

git Push-uOrigin oldnameを経由してブランチにリモートトラッキングを設定する傾向があるので、この追加の手順が必要になる場合があります。このようにして、oldnameをチェックアウトしたときに、git Pushではなくgit Push Origin oldname型のみが必要になります。

_ _ではないgit branch --unset-upstreamの前にgit Push Origin newbranchコマンドを使用すると、gitoldbranchを再作成し、newbranchOrigin oldbranchにプッシュします。私の意図を破った。

1
SherylHohman

これは私のために働いたものです:

1.)最初に新しいブランチを作成します。git Push github newname:refs/heads/newname

2.)githubサイトで、設定に移動してDefaultブランチをnewnameに変更します。

3.)oldname gitを削除します。github --delete oldnameをプッシュします。

1
Wiley

次のコマンドは、ブランチの名前をローカルに変更し、リモートの場所にある古いブランチを削除し、新しいブランチをプッシュして、新しいリモートを追跡するようにローカルブランチを設定します。

git branch -m old_branch new_branch
git Push Origin :old_branch
git Push --set-upstream Origin new_branch
0
Pooja Mane

別の方法は以下のファイルの名前を変更する

  1. プロジェクトディレクトリをナビゲートする
  2. .git/refs/head/[branch-name].git/refs/head/new-branch-nameに名前変更
  3. .git/refs/remotes/[all-remote-names]/[branch-name].git/refs/remotes/[all-remote-names]/new-branch-nameに名前変更

ローカルPCのと起点/リモートサーバーのの両方で、head&remotesの名前を変更

ブランチの名前が変更されました(ローカルとリモート)。


注意

現在のブランチ名にスラッシュ/)が含まれている場合、gitは以下のようにディレクトリを作成します。

現在のブランチ名:"awe/some/branch"

  • .git/refs/head/awe/some/branch
  • .git/refs/remotes/[all-remote-names]/awe/some/branch

支店名を希望します:"new-branch-name"

  1. プロジェクトディレクトリをナビゲートする
  2. .git/refs/*/awe/some/からbranchファイルをコピーする
  3. .git/refs/head/に入れてください。
  4. すべての.git/refs/remotes/*/awe/some/からbranchファイルをコピーします。
  5. それらを.git/refs/remotes/*/に入れてください。
  6. すべてのbranchファイルをnew-branch-nameに名前変更します。
  7. ディレクトリとファイルの構造が以下のようになっているか確認してください:
    • .git/refs/head/new-branch-name
    • .git/refs/remotes/[all-remote-names]/new-branch-name
  8. すべてのリモートの起点/サーバー(存在する場合)に対しても同じようにします
    • info:remote-serversにはすでにremote-serverにあるのでrefs/remotes/*ディレクトリは通常ありません;)(おそらく高度なgit設定では可能かもしれませんが、私は行ったことがありません)それを見た)

ブランチはawe/some/branchからnew-branch-nameに変更されました(ローカルとリモート)。

ブランチ名のディレクトリは削除されました。


情報:この方法は最善ではないかもしれませんが、それでも人々のために働く他の方法で問題がある可能性がある人

0
Iyashi
  1. ダウンロード Atlassian SourceTree (無料)。
  2. リポジトリのローカルクローンをインポートします。
  3. サイドバーで、ブランチを右クリックして名前を変更します。コンテキストメニューから[ブランチ名の変更]を選択して名前を変更します。
  4. 原点にプッシュします。
0
Engineer