Git分支文件位置

Git分支文件位置,git,branch,Git,Branch,在我的本地系统中,我有将近一百家分支机构,其中大多数已经过时。我想打开包含所有分支的文件,这样我就可以轻松地删除大部分分支,而不是费力地逐个删除分支。有办法吗?一个我们可以打开以查看所有分支的文件?在git中,您没有一个包含分支列表的文件,而是一个包含每个分支一个文件的目录,每个分支都以该文件命名 它是.git/refs/heads,例如,您的主分支由文件.git/refs/heads/master(无扩展名)组成,其内容是当前指向的提交哈希master (请注意名称中带有斜杠的分支:它们将被拆

在我的本地系统中,我有将近一百家分支机构,其中大多数已经过时。我想打开包含所有分支的文件,这样我就可以轻松地删除大部分分支,而不是费力地逐个删除分支。有办法吗?一个我们可以打开以查看所有分支的文件?

在git中,您没有一个包含分支列表的文件,而是一个包含每个分支一个文件的目录,每个分支都以该文件命名

它是
.git/refs/heads
,例如,您的主分支由文件
.git/refs/heads/master
(无扩展名)组成,其内容是当前指向的提交哈希
master

(请注意名称中带有斜杠的分支:它们将被拆分到特定目录中,即分支
功能/新主页
的文件将位于子目录
功能
,并命名为
新主页



还有,也许可以检查一下。可以在回购中使用它,也可以检查是否有人已经打包了一些引用。

Git中的每个分支都由一个文本文件表示,其中包含该分支中最新提交的SHA-1。这些文件称为

您可以看到分支引用的路径以及它们所指向的各个commit SHA-1,方法是:

git show-ref --heads
rm .git/refs/heads/some-branch
git branch --list 'feature-*' | xargs git branch -D
这将返回类似于:

923eccb90415758c74bb3418007bf5691a0d4a1c refs/heads/some-branch
60e2e7f120f5410ec0ba97fa5093bae4dba4ee57 refs/heads/master
现在,如果您想删除分支引用,可以说:

git show-ref --heads
rm .git/refs/heads/some-branch
git branch --list 'feature-*' | xargs git branch -D
但我不建议直接破坏存储库的内部结构;相反,您应该使用Git自己的命令来实现这一点

例如,假设您想要删除所有以单词
feature-
开头的分支。你可以说:

git branch --list 'feature-*'
以获取匹配分支名称的列表。从那里,您可以通过以下方式删除这些分支:

git show-ref --heads
rm .git/refs/heads/some-branch
git branch --list 'feature-*' | xargs git branch -D

该选项告诉Git删除分支,无论其是否已合并到当前分支。

直接操作回购的内部结构通常不是一个好主意,因为它可能会使回购处于损坏状态。使用Git自己的命令可以保证一切都是一致的。@Enricoampidoglio我并不主张这样做。我也认为使用git命令来做这件事是更好的实践。这就是我对你的答案投赞成票的原因。