1. ホーム
  2. git

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

2022-03-17 01:22:36

質問

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

そこで、リモートブランチの名前を変更したい(origin/regacy → origin/legacy or origin/master)。

以下のようなコマンドを試しています。

git remote rename regacy legacy

しかし、Git console は私にエラーメッセージを返しました。

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

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

どのように解決するのですか?


そのためには、いくつかの方法があります。

  1. ローカルブランチを変更し、その変更をプッシュする
  2. ローカルに元の名前を残したまま、新しい名前でブランチをリモートにプッシュします。

ローカルとリモートの名前を変更する

# 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>

# Or shorter way to delete remote branch [:]
git push <remote> :<old_name>

# Prevent git from using the old name when pushing in the next step.
# Otherwise, git will use the old upstream name instead of <new_name>.
git branch --unset-upstream <new_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>


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

クレジット ptim

# In this option, we will push the branch to the remote with the new name
# While keeping the local name as is
git push <remote> <remote>/<old_name>:refs/heads/<new_name> :<old_name>


重要なお知らせです。

を使用する場合 git branch -m (移動)、Git はまた 更新 追跡用ブランチに新しい名前を付けます。

git remote rename legacy legacy

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

しかし は、あなたが考えているようなことはせず、あなたの ローカル 設定リモート名と ない リモートブランチを指定します。 


備考 Gitサーバーでは、ウェブインターフェースや外部プログラム(Sourcetreeなど)を使ってGitブランチの名前を変更できるかもしれません。しかし、Gitではすべての作業がローカルで行われることを念頭に置いて、上記のコマンドを使って作業することを推奨します。