2016-03-21 20 views
0

私のリモートにfeature1というブランチがあります。私は経由して、これを追跡するローカルブランチを作成しようとしました:リモートブランチを削除せずにローカル "リモートブランチ"を削除しますか?

git checkout -b origin/feature1 

しかし、今git branchは私にこの例を示します

master  
*origin/feature1 

をそして、私は、これは権利ではありません知っています。それはちょうどfeature1でなく、origin/feature1でなければなりません。

リモートブランチをそのままにしてこれを削除し、正しくセットアップするにはどうすればよいですか?私は何を間違えたのですか?そのようにそのような単純なブランチを削除するには

答えて

2

あなたのコマンドがされている必要がありますすべてのコマンドの完全なスクリーンショットです:

git checkout -b feature1 origin/feature1 

ブランチfeature1を作成する「と言いチェックアウトとし、トラックを持ってくださいorigin/feature1 '。あなたがしたのは、文字通りorigin/feature1という名前のブランチを作成することでした。これは、リモートブランチを追跡していません。

git checkout master 

をして、それを削除します:

は、別のブランチに、スワップをそれを修正するには何がここでやったことはorigin/feature1という名前の通常のローカルブランチを作成

git branch -d origin/feature1 
+0

OH 'git branch -d etc'はリモートブランチを削除しません。完全に忘れました。 – Aerovistae

+0

問題.... 'git branch -d origin/fea'はそのブランチ名を自動入力していません.... – Aerovistae

+0

@Aerovistae私はあまりにもその問題を抱えていました。おそらくgitは命名と混同されています(そして地元のリモコンを見て)。しかし、手動で書くことは機能します(応答する前にローカルでテストします)。 – Rob

1

git branch -D <branch name> 

しかし、あなたはまた、単に古いものの名前を変更することができます

そして、私は、これは正しくありません知っています。それはちょうどfeature1ローカルではなく、origin/feature1でなければなりません。ここで

git branch -m <new_name> 

enter image description here

2

です。 Gitはこれに完全に満足しています。内部では、その名前はrefs/heads/origin/feature1です。これは、通常のローカルブランチとして明確にマークしています。ユーザーにとっては紛らわしく、リモートトラッキングブランチのように見えます。

Rob already answeredとして、偽の名前でローカルブランチを削除するだけで済みます。別の方法としては、まずそれを下車する必要がなくなりれ、その名前を変更することができます

$ git branch 
    master 
* origin/feature1 
$ git branch -m feature1 
$ git branch 
    master 
* feature1 

注意を実際のリモートブランチがrefs/remotes/で始まる完全な内部名を持っている、とあなたがの完全な内部名を参照するgit symbolic-ref HEADを実行できることあなたがrefs/heads/refs/remotes/のものについて知っていれば、それほど混乱しないかもしれません。

関連する問題