2016-04-22 10 views
0

の名前を変更したブランチのすべての名前見ることができます:今、私は「Gitのブランチ-a」を実行するとき、私は "が表示されないhttps://multiplestates.wordpress.com/2015/02/05/rename-a-local-and-remote-branch-in-git/私はこれらの命令を使用してGitのレポに私の支店に改称gitの

git branch -m new-name 
git push origin :old-name new-name 
git push origin -u new-name 

を古い名前のブランチ。しかし私が別のマシンでそうしたとき、私は両方のブランチを見る。さらに、私はそれらのいずれかを 'チェックアウト'することができます。私は何を間違えたのですか?他の人が古い名前のブランチを見ないようにするにはどうすればよいですか?

答えて

1

git branch -aを実行すると、old-nameブランチが表示されません。
は、しかし、私は別のマシン上でそれを行うとき、私は両方のブランチ

を参照してくださいあなたはローカルブランチの名前を変更した、あなたは、リモートからの古いものを削除しませんでした。名前変更の前にローカル

# rename the branch as you did 
git branch -m <new name> 

# now remove it form the remote and push the new one 
git push origin --delete <old_branch> 

# push the new name to the remote 
git push origin <new branch> 

# now on the other machines fetch with the --prune to remove the old branch locally 
git fetch --all --prune 

NOTE
いくつかのいずれかのチェックアウトの場合、このブランチ、彼はまだローカルブランチとしての彼のリポジトリにローカルにそれを持っています。
あなたはどのように私は他の人が古い名前のブランチが表示されないようにすることができ、リモート

から

をフェッチすることで、地元の枝を削除することはできませんか?

削除するように指示する必要があります。既にこのブランチをチェックアウトしている場合は、ローカルで削除されない限り削除できません。

+0

私の一連のコマンドが機能しているようです。私はブランチ名の前のセミコロンは '​​--delete'オプションを指定するのと同じだと思います。別のマシンに古いブランチがないことを確認するには 'git fetch --all --prune'で十分です。これは実際には非常に混乱しています。なぜなら私が 'git branch -a'を実行すると、古いブランチのすべてに 'remote/origin'という接頭辞が付けられているからです。 –

+0

あなたは ':'や '--delete'を使うことができますが、どちらも同じです。 '--prune'を使わずにフェッチした場合、それらは削除されません – CodeWizard

関連する問題