logo

macos git 清理本地缓存 以及所有本地分支

Published on

完整清理示例

结合你之前的清理需求,如果你想清理缓存、本地分支和所有贮藏,可以这样操作:

# 清理工作目录和未跟踪文件
git reset --hard
git clean -fd

# 清理远程引用和无用对象
git fetch --prune
git gc --prune=now

# 删除所有本地分支(除了当前分支)
git branch | grep -v "$(git rev-parse --abbrev-ref HEAD)" | xargs git branch -D

# 清除所有贮藏
git stash clear

————————————————

我来帮你说明如何在 macOS 上使用 Git 清理本地缓存以及删除所有本地分支的步骤。以下是具体操作:

  1. 清理本地缓存

Git 本身没有直接的“缓存”概念,但通常指的是清理工作目录、暂存区或一些无用的文件(如未跟踪文件或过期的对象)。以下是常用命令:

清理工作目录和暂存区

# 丢弃所有未提交的修改(包括已暂存和未暂存的更改)
git reset --hard

# 清理未跟踪的文件和目录(如新创建但未 git add 的文件)
git clean -fd
  • git reset --hard:将工作目录和暂存区重置到当前 HEAD。
  • git clean -fd:删除所有未跟踪的文件(-f 表示强制,-d 表示包括目录)。

清理 Git 缓存(如过期的引用或对象)

# 清理过期的引用
git fetch --prune

# 运行垃圾回收,清理无用的对象
git gc --prune=now
  • git fetch --prune:同步远程分支并删除本地已不存在的远程分支引用。
  • git gc --prune=now:清理 Git 仓库中的无用对象。
  • 删除所有本地分支(除了当前分支)

如果你想删除所有本地分支(除了你当前所在的分支),可以用以下步骤:

查看所有本地分支

git branch

删除所有本地分支(除了当前分支)

git branch | grep -v "$(git rev-parse --abbrev-ref HEAD)" | xargs git branch -D
  • git branch:列出所有本地分支。
  • grep -v "$(git rev-parse --abbrev-ref HEAD)":排除当前所在分支。
  • xargs git branch -D:将筛选出的分支传递给 git branch -D 进行强制删除。

注意:

  • -D 是强制删除,即使分支未合并也会删除。如果只想删除已合并的分支,可以用 -d。
  • 执行前请确认你真的不需要这些分支,或者已推送到远程备份。

完整示例

假设你想清理缓存并删除所有本地分支,可以按顺序执行:

# 清理工作目录和未跟踪文件
git reset --hard
git clean -fd

# 清理远程引用和无用对象
git fetch --prune
git gc --prune=now

# 删除所有本地分支(除了当前分支)
git branch | grep -v "$(git rev-parse --abbrev-ref HEAD)" | xargs git branch -D

注意事项

  1. 备份:如果不确定,建议先备份仓库(复制整个文件夹)。
  2. 远程分支:以上操作只影响本地,不会删除远程分支。
  3. 当前分支:上述命令不会删除你当前所在的分支。

清除所有贮藏的命令

bash

git stash clear

解释

  • git stash clear:删除当前仓库中的所有贮藏条目。这个操作是不可逆的,执行后所有贮藏都会被永久删除。
🤪 您也可以编辑此页: