私たちのチームが使用するカスタムGitツールは、新しい機能/バグが作業されるたびにブランチを作成します。ブランチの削除 - .git/refs/headsのファイルを編集するのに安全ですか?
変更が近づいていない場合、リモートブランチは別のツールを使用して変更され、ブランチのローカルコピーは同期しないままになります。
多くの場合、開発者のローカルリポジトリに残っている古いブランチをすべてクリーンアップする方法があります。 git branch -D branchname
を入力すると、このような古いブランチが数多くある場合には、面倒な作業になる可能性があるので、ショートカットが必要です。
私が出していたアドバイスのいくつかは、.git/refs/heads
フォルダからファイルを削除することでした。
一つのマニュアルトリックすぐにバッチで枝を削除するか
.git/refs/heads folder
から ファイルを削除することです。は、ここで私が送り出す全文です。 がブランチに対応するファイル名が表示されます。ブランチは、 をファイルの内容にするshaへのポインタに過ぎないので、ファイルを削除するとブランチが削除されます。 ポインタが実際にコミットされていないことを指摘します。 ポインタが指し示されたことを意味します。
このアドバイスはは安全なようだが、私はこのアプローチが失敗したり、仕事を失ったりする可能性があります状況があることを妄想しています。
master
ファイルを削除するなどの間違いをしたユーザー以外は、この安全なアドバイスはありますか?
EDIT:この質問は、ローカルブランチが古いかそうでない場合が多い--merged
が決定するのに十分ではないだろう、なぜならによる当社の社内ツールの性質上this questionは異なっています。また、私たちは一羽の急降下で枝を削除したくないです...まだ活動していない枝を削除しないように、各枝の手動チェックが必要です。
私の理解に基づいて、これを行うことで仕事を失うことはありません。あなたが言うように、あなたはヘッドを削除しているだけですが、ファイルとコミットはまだ変わりません。最悪のシナリオでは、重要なブランチヘッドを削除したとしても、あなたのreflogは '.git/logs /'の中にまだ存在するはずです。手動でファイルを削除する必要がない、より良い、よりきめの細かい方法が考えられます。 – Chris
[マージされたすべてのgitブランチを削除するにはどうすればいいですか?](https://stackoverflow.com/questions/6127328/how-can-i-delete-all-git-branches-which-have-been -merged) – smarber