2013-01-17 10 views
11

は、私は、次の枝を持っている:多くの未使用のブランチ。クリーンアップの仕方?

* master 
newbranch 
remotes/origin/HEAD -> origin/master 
remotes/origin/api-notes 
remotes/origin/event-creation-validation 
remotes/origin/master 
remotes/origin/organizerlocation-bug-demo 
remotes/origin/ticket-180 
  1. は、原点/マスターまたはこれらの枝が一緒に作業しているとは異なり、現在のブランチのマスターか?

  2. 別のブランチの最後の変更を検出するにはどうすればよいですか?それらを削除するにはどうすればよいですか?

ありがとうございました。

答えて

3

1 /現在のブランチマスタがorigin/masterと異なるか、またはこれらのブランチが連携して動作していますか?

(クローン後にorigin/masterから開始しても)origin/master(「how do I change the remote a git branch is tracking?」を参照)とは異なります。あなたは差分をgitのできる

git branch -rd origin/api-notes 

( "How do you Remove an Invalid Remote Branch Reference from Git?" ではより多くの)

:あなたがしてリモコンの名前空間からブランチを削除することができますどのように私は、クリーンアップ

にそれらを削除することができ

2 /またはgitが2つのブランチをログして、あなたが持っていないコミットを見てください:
"Git diff .. ? What's the difference between having .. and no dots?"を参照してください。
Git: Compare All Local Commits to Remote Repo Version」も参照してください。

7

何も心配する必要はありません。これが理由です:

現在のブランチマスタがorigin/masterと異なるのですか、またはこれらのブランチが連携して動作していますか?

masterを追跡ブランチとして作成した場合、または複製した場合(デフォルトではクローンが追跡マスターを作成します)、次にyes、sort ofのいずれかです。トラッキングとは単に、gitがpushとmergeのデフォルトターゲットとしてこのブランチマッピングを使用することを意味します。また、 "ブランチマスタは、2つのコミットでマスタ/マスタ"のようなステータスメッセージを表示します。

どのようにして、異なるブランチの最後の変更を検出できますか?

私は単にこれは、短いローカルおよびリモートのすべての支店のためのIDと短い要約をコミット示し

git branch -av 

を使用します。

これに加えて、git logを使用することができます。 git log --decorateは、どのブランチがコミットするかを示すのに非常に役立ちます。最新のgitのバージョン(1.7.11+)では、あなたは永久にこのコマンドを使用して、それを有効にすることができます。

git config --global log.decorate short 

どのように私は、クリーンアップにそれらを削除することができますか?

リモートブランチはあなたのものではありません。遠隔分岐は、単に最後にgit fetchが実行された時刻にリモートの状態を反映します。それらを作成することはできません。git branch -rdを使用してそれらを削除しても、次回にgit fetchを実行すると、これらのリモートブランチポインタは直ちに戻されます。

しかし、あなたは完全にこのリモートを削除する場合:

git remote rm origin 

その後、このリモートのためのすべてのリモートブランチが一度消えてしまいます。

+0

私の答えよりも詳しい説明。 +1 – VonC

関連する問題