2016-03-18 10 views
32

私はいくつかのリモートブランチを枝刈りしてしまいましたが、実際の結果は分かりません(Git Extensionsの "リモートブランチのプルーニング"ボタンをクリックしてリモートブランチを削除すると思いました)。Gitの剪定とは何ですか?

「git-prune - 到達不能オブジェクトをオブジェクトデータベースからプルーニングする」と書かれています。私はこれがどういう意味か分かりません。私はこれが合併された枝を削除したかもしれないと思っていますが、私は本当にわかりません。

+0

可能性のある複製http://stackoverflow.com/questions/4040717/git-remote-prune-didnt-show-as-many-pruned-branches-as-i-expected – Raghavan

+0

「git gc ':https://git-scm.com/docs/git-pruneも参照してください。 – swdon

答えて

33

Git Extensionsの "Prune remote branches"はgit remote pruneコマンドを実行します。このコマンドは、リモートのブランチが存在しなくなったローカルリモートトラッキングブランチを削除します。

はこちらをご覧ください:https://git-scm.com/docs/git-remote#git-remote-empruneem

+0

それは基本的にあなたのリモートを優先させ、あなたのリモートブランチにマッチするようにあなたのローカルを調整しますか? – Honey

+0

@ハニー・ノー、ローカル**のリモート・トラッキング・ブランチ**を削除するだけで、通常のブランチには触れられません。 – 1615903

14

このガベージコレクションはブランチを収集します。

Thatsは、ブランチの祖先でオブジェクト(コミット)に到達できない場合、gitデータベースでは削除され、それ以上は到達できないことを意味します。

これはちょっとだけgitリポジトリをクリーンアップし、軽量化します。

+0

文書によると、このような家事の仕事のために、本質的にgit pruneを行う 'git prune'ではなく、' git gc'を行うほうが良いかもしれません。 – swdon

0

は、私たちがマスターにマージした後に除去されているリモート機能ブランチがあるかもしれません。機能ブランチをクリーンアップの方法として削除した可能性があります。しかし、削除されたブランチをローカルシステムにチェックアウトし、トラッキングとしてステータスに設定した場合、git pullはそれらのローカルブランチを削除しません(すでにそれらがサーバーから切断されているため)。そのような地元の孤児の枝を掃除するには、git pruneコマンドが便利です。

関連する問題