私は使用して私のローカルブランチの名前を変更しました
git branch -m oldname newname
しかし、これはブランチのローカルバージョンの名前を変更するだけです。GitHubで名前を変更するにはどうすればよいですか?
私は使用して私のローカルブランチの名前を変更しました
git branch -m oldname newname
しかし、これはブランチのローカルバージョンの名前を変更するだけです。GitHubで名前を変更するにはどうすればよいですか?
回答:
前述のように、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を指定せずにプッシュを実行すると、「ローカルリポジトリから何も取得せずに、リモートブランチにする」という意味になります。私はいつもこれは完全に不器用だと思っていましたが、それはそれが行われた方法です。
編集:のように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
シェルコマンドの位置引数は古い(2.8以前の)バージョンのgitでは問題があったため、エイリアスはgitのバージョンによって異なる場合があることに注意してください。詳細については、この説明を参照してください。
git push origin :old_branch new_branch
。これにより、古いブランチが削除され、新しいブランチがプッシュされます。
git branch -m new_branch
(old_branchの名前をnew_branchに変更)2. git commit -m 'msg'
、3 git push
. 4.うーん、old_branchがGithub、Googleの質問に表示され、私はあなたの答えに導かれます5. git push origin :old_branch
(削除されたと言います)6. git push origin new_branch
...完了してと言い* [new branch] new_branch -> old_branch
ます。Githubに戻り、old_branch
再び表示されます。Github Web UIで削除した場合、「復元」するオプションがあるので、new_branchをプッシュすると復元しているように見えます。
次のコマンドは私のために働きました:
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
私はあなたの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 push --set-upstream
リモートブランチを削除する前にgithub appを使用してローカルでブランチ名を変更した場合、最も重要な部分です。
古いブランチを削除して新しいブランチを作成するだけです。
例(リモートブランチの名前のみ変更):
git push origin :refs/heads/oldname
git push origin newname:refs/heads/newname
また、おそらくローカルブランチの名前を変更し、プッシュ/プルする場所の設定を変更する必要があります。
git push origin newname:refs/heads/newname
ませんか?masterとnewnameは同じコミットを指していない可能性があります。
1.ローカルブランチの名前を変更します。
名前を変更したいブランチにいる場合:
git branch -m new-name
別のブランチにいる場合:
git branch -m old-name new-name
2.古い名前のリモートブランチを削除し、新しい名前のローカルブランチをプッシュします。
git push origin :old-name new-name
3.新しい名前のローカルブランチのアップストリームブランチをリセットします。
ブランチに切り替えてから:
git push origin -u new-name
結論は
git branch -m new-name
git push origin :old-name new-name
git push origin -u new-name
git branch -m new-name && git push origin :master new-name
。失敗します。この回答がGitHubではなくGitのみに関するものである場合、この質問は他のいくつかの質問の重複であり、終了する必要があります。それが本当にgithubに関するものなら、その答えはgithubをカバーする必要があります。この答えはしません。
ターミナルなしでそれを行うことができます。新しい名前でブランチを作成し、古いものを削除するだけです。この投稿を使用してそれを行うことができます。
別の方法は、次のファイルの名前を変更することです:
.git/refs/head/[branch-name]
を変更.git/refs/head/new-branch-name
.git/refs/remotes/[all-remote-names]/[branch-name]
を変更.git/refs/remotes/[all-remote-names]/new-branch-name
ローカルPC とオリジン/リモートサーバーの両方でヘッドとリモートの名前を変更します
現在のブランチ名にスラッシュ(/
)が含まれている場合、gitは次のようにディレクトリを作成します。
現在のブランチ名: "awe/some/branch"
.git/refs/head/awe/some/branch
.git/refs/remotes/[all-remote-names]/awe/some/branch
ブランチ名: "new-branch-name"
branch
からファイルをコピーする.git/refs/*/awe/some/
.git/refs/head/
。branch
すべてからファイルをコピーする.git/refs/remotes/*/awe/some/
.git/refs/remotes/*/
。branch
ファイルの名前をに変更しますnew-branch-name
。.git/refs/head/new-branch-name
.git/refs/remotes/[all-remote-names]/new-branch-name
awe/some/branch
がnew-branch-name
(ローカルおよびリモート!)に変更されました。情報:この方法は最善ではないかもしれませんが、他の方法で問題が発生する可能性のある人にとってはうまくいきます
私の場合、
名前を変更したブランチをにプッシュするための追加のコマンドが必要でした。
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
-u
origin oldname
oldname
git push
git push origin oldname
以前にコマンドを使用しない場合、gitは再作成してプッシュします-意図を打ち破ります。git branch --unset-upstream
git push origin newbranch
oldbranch
newbranch
origin oldbranch
次のコマンドは、ブランチの名前をローカルで変更し、リモートロケーションの古いブランチを削除して、新しいブランチをプッシュし、ローカルブランチが新しいリモートを追跡するように設定します。
git branch -m old_branch new_branch
git push origin :old_branch
git push --set-upstream origin new_branch
そのように単純です。ローカルおよびリモートでgitブランチの名前を変更するには、次のスニペットを使用します(テスト済みで、チャームのように機能します)。
git branch -m <oldBranchName> <newBranchName>
git push origin :<oldBranchName>
git push --set-upstream origin <newBranchName>
説明:
ステップの名前を変更:
Gitリファレンス: -mまたは-Mオプションを使用すると、に名前が変更されます。対応するreflogがあった場合、それはmatchに名前が変更され、ブランチの名前変更を記憶するためにreflogエントリが作成されます。存在する場合は、-Mを使用して、名前の変更を強制する必要があります。
ステップを削除:
Gitリファレンス: git push origin:experimental originリポジトリーでexperimentalに一致するリファレンスを見つけ(例:refs / heads / experimental)、それを削除します。
リモートリポジトリステップの更新(追跡の上流参照):
Gitリファレンス:-- set-upstream最新のブランチまたは正常にプッシュされたブランチごとに、引数なしのgit-pull [1]およびその他のコマンドで使用されるアップストリーム(追跡)リファレンスを追加します。詳細については、git-config [1]のbranch..mergeを参照してください。
git push originヘッド
git branch -m old-branch-name new-branch-name
git push originヘッド