我们团队使用的自定义Git工具会为每个正在处理的新功能/错误创建一个分支。删除分支 - >安全地编辑.git/refs/heads文件?
通常情况下,当更改接近完成时,远程分支将通过另一个工具进行更改,从而使分支的本地副本不同步。
经常出现的一个问题是如何清理所有留在开发人员本地存储库中的陈旧分支。因为输入很多git branch -D branchname
可能会令人厌倦,当有几十个这些陈旧的分支。
我一直给出的一些建议是从他们的.git/refs/heads
文件夹中删除文件。
这里是我送出去的全文:
一个手工技巧,在批量快速删除树枝是从你的
.git/refs/heads folder
删除 文件。你会看到 对应分支的文件名。一个分支只是一个指向sha的指针,它使得文件的内容变为 ,因此删除该文件将删除该分支。 请注意,这将只有删除指针,而不是指针碰巧指向的实际提交 。
这个建议似乎安全的,但我偏执地认为存在一种情况,这种做法可能会失败或导致工作丢失。
除了删除master
文件等明显错误的用户以外,这是否安全?
编辑:来自这个问题this question不同的,因为由于我们的内部工具的性质,往往--merged
如果本地分支是无效的或不将不足以确定。另外,我们不希望一举删除分支......需要为每个分支手动检查以避免删除仍然活动的分支。
根据我的理解,我不会因为这样做而失去工作。正如你所说,你只是删除了头像,但文件和提交仍然完好无损。最坏的情况,即使你删除了一个重要的分支头,你的reflog仍然应该在'.git/logs /'中完成。有可能是一个更好的,整洁/整洁的方法,不涉及手动删除文件。 – Chris
可能重复的[如何删除所有已合并的git分支?](https://stackoverflow.com/questions/6127328/how-can-i-delete-all-git-branches-which-have-been -merged) – smarber