web-dev-qa-db-ja.com

Gitのローカルブランチとリモートブランチの両方の名前を変更するにはどうすればよいですか?

私はmaster - > Origin/regacy、FeatureA - > Origin/FeatureAのような4つのブランチを持っています。ご覧のとおり、間違った名前を入力しました。

だから私はリモートブランチ名を変更したいのですが(Origin/regacy→Origin/legacyまたはOrigin/master)

私は以下のコマンドを試してみます:

git remote rename regacy legacy

しかし、Gitコンソールからエラーメッセージが返されました。

 error : Could not rename config section 'remote.regacy' to 'remote.legacy'

どうすればこの問題を解決できますか?

251
JayD

Enter image description here


リモートブランチの名前を直接変更することはできません。 あなたはそれを削除してからそれを再プッシュする必要があります。

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

# Rename the local branch to the new name
git branch -m <old_name> <new_name>

# Delete the old branch on remote - where <remote> is, for example, Origin
git Push <remote> --delete old_name

# Push the new branch to remote
git Push <remote> new_name

# Reset the upstream branch for the new_name local branch
git Push <remote> -u new-name

Enter image description here


重要な注意点:

git branch -m(移動)を使用すると、Gitは 更新 新しい名前の追跡ブランチにもなります。

git remote rename legacy legacy

git remote renameは設定ファイル内のリモートセクションを更新しようとしています。指定された名前のリモコンの名前を新しい名前に変更しますが、あなたの場合は見つからなかったため、名前の変更は失敗しました。

しかし それはあなたが思うことをしないでしょう。それはあなたの local 設定リモート名と not リモートブランチの名前を変更します。


Gitサーバーでは、Webインターフェースまたは外部プログラム(Sourcetreeなど)を使用してGitブランチの名前を変更できますが、Gitではすべての作業がローカルで行われるため、注意上記のコマンドを使用して作業することをお勧めします。

495
CodeWizard

誤ってブランチに名前を付けてリモートリポジトリにプッシュした場合は、次の手順に従ってそのブランチの名前を変更してください( この記事に基づく )。

  1. ローカルブランチの名前を変更する:

    • あなたがブランチ上にいる場合は、名前を変更したいです。
      git branch -m new-name

    • あなたが別のブランチにいるならば:
      git branch -m old-name new-name

  2. old-nameリモートブランチを削除し、new-nameローカルブランチをプッシュする
    git Push Origin :old-name new-name

  3. 新しい名前のローカルブランチのアップストリームブランチをリセットする
    ブランチに切り替えてから:
    git Push Origin -u new-name

73
ZILONG PAN

直接的な方法があるようです。

ブランチの名前をリモートで(同時にローカルブランチの名前を変更せずに)変更するだけの場合は、次のような単一のコマンドでこれを実行できます。

git Push <remote> <remote>/<old_name>:refs/heads/<new_name> :<old_name>

Gitでリモートでブランチ名を変更する

詳細については元の答えを参照してください。

25
ptim

次のようにすることもできます。

最初にローカルブランチ、次にリモートブランチの名前を変更します。

ローカルブランチの名前を変更する:

別のブランチにログインした場合

git branch -m old_branch new_branch 

同じブランチにログインした場合

git branch -m new_branch

リモートブランチの名前変更:

git Push Origin :old_branch    // Delete the remote branch

git Push --set-upstream Origin new_branch   // Create a new remote branch
8
Atequer Rahman

これは、3つの簡単なステップでローカルブランチの名前を変更しなくても実行できます。

  1. GitHubのリポジトリにアクセスしてください。
  2. 名前を変更したい古いブランチから新しいブランチを作成します。
  3. 古いブランチを削除する
0
Code_Mode

直接的な方法はありません、

  1. ローカルブランチの名前を変更

    私の現在のブランチは master です。

    git branch -m master_renamed #master_renamedはマスターの新しい名前です

  2. リモートブランチを削除します。

    git Push Origin --delete master #Origin is remote_name

  3. 名前が変更されたブランチをリモートにプッシュします。

    git Push Origin master_renamed

それでおしまい...

0

私はこれらのgitエイリアスを使用しますが、ジョブはほぼ自動で行われます。

git config --global alias.move '!git checkout master; git branch -m $1 $2; git status; git Push --delete Origin $1; git status; git Push -u Origin $2; git branch -a; exit;'

使用法:git move FROM_BRANCH TO_BRANCH

Master、Originなどのデフォルト名があれば機能します。必要に応じて変更できますが、アイデアは得られます。

0
Tarik