Git提取历史版本导出到新目录以及常用命令
› 社区话题 › Linux/macOS 与自动化运维 › Git提取历史版本导出到新目录以及常用命令
- 该话题为空。
- 作者帖子
- 2026年10月22日 - 下午2:47 #1528

追光管理员我把刚才操作过的内容整理成一份 macOS 终端 Git 常用命令教程,重点是你现在需要掌握的:查看历史、使用短 Hash、提取指定版本到独立目录,以及查看 Git 配置。
原则是:只提取历史版本,不重置当前项目;导出到新目录,不覆盖现有文件。
Git 常用命令教程
一、查看提交历史
1. 查看简洁历史(推荐)
git log --oneline每个版本占一行,显示短 Hash 和提交说明,例如:
9dda52d test auto deploy webhook 07a40c6 feat: 引入本地文件与独立 Redis 双模式动态切换 f2c611b 恢复版本2. 只看最近 20 个版本
git log -20 --oneline3. 查看完整提交信息
git show -s --format=fuller 9dda52d4. 查看某个版本修改了哪些文件
git show --stat 9dda52d5. 退出历史查看页面
按 q 键二、让 Git 默认显示短 Hash
只需设置一次:
git config --global log.abbrevCommit true之后执行
git log时,Hash 默认就会缩短显示。
查看设置是否生效:
git config --global --get log.abbrevCommit输出
true就是已生效。
如果希望以后输入更短的命令查看一行式历史,还可以设置一个别名:
git config --global alias.lg "log --oneline --decorate"以后直接执行:
git lg注意:
git log --oneline本身就会显示短 Hash,即使不设置全局选项也可以使用。
三、手动提取指定版本(核心功能)
这部分是你最需要掌握的:根据 Hash,把某次提交完整导出到一个独立目录。
第 1 步:进入 Git 仓库
以你的
newvfx-ai为例:
cd "/Users/xbaby/Sites/Machine-sites/wwwroot/lnmp/domain/community/web/wp-content/plugins/newvfx-ai"确认当前所在位置:
pwd确认它确实是 Git 仓库:
git rev-parse --show-toplevel第 2 步:找到目标版本
git log -20 --oneline例如找到:
9dda52d test auto deploy webhook 07a40c6 feat: 引入本地文件与独立 Redis 双模式动态切换 f2c611b 恢复版本你只需记住最前面的短 Hash,例如
07a40c6。
第 3 步:创建提取目录
先创建存放所有历史版本的根目录:
mkdir -p "/Users/xbaby/Sites/Git-Snapshots"然后为这次导出生成一个时间目录:
SNAPSHOT_DIR="/Users/xbaby/Sites/Git-Snapshots/$(date +%Y%m%d-%H%M%S)"查看将要使用的路径:
echo "$SNAPSHOT_DIR"创建目录:
mkdir "$SNAPSHOT_DIR"这里使用
mkdir而不是
mkdir -p,是为了防止目标目录已存在时继续操作。如果创建失败,就停止,不要继续提取。
第 4 步:执行提取
假设你要提取
07a40c6:
set -o pipefail git archive 07a40c6 | tar -xf - -C "$SNAPSHOT_DIR"这条命令的含义:
git archive 07a40c6:导出指定提交中的文件。
|:将导出的归档数据传给后面的命令。
tar -xf -:从标准输入读取归档并解压。
-C "$SNAPSHOT_DIR":将文件解压到指定目录。
注意:这条命令必须在刚才那个 Git 仓库目录中执行,因为
$SNAPSHOT_DIR变量也需要在同一个终端窗口中保留。
第 5 步:查看结果
open "$SNAPSHOT_DIR"或者查看目录路径:
echo "$SNAPSHOT_DIR"每次导出都创建一个新的时间目录,避免与以前的版本混在一起。
四、常用配置与查询
目的 命令 查看当前仓库路径 git rev-parse --show-toplevel查看工作区改动 git status --short查看最近 10 次提交 git log -10 --oneline查看某次提交详情 git show 07a40c6查看提交修改文件统计 git show --stat 07a40c6查看当前用户名 git config user.name查看当前邮箱 git config user.email查看全局配置 cat ~/.gitconfig查看短 Hash 设置 git config --global --get log.abbrevCommit五、几个重要概念
git log查看历史记录,不修改项目文件。
git archive将指定提交中的已跟踪文件导出到独立目录,不切换当前分支,也不改写提交历史。
导出快照不等于完整备份
它不会包含未提交修改、未跟踪文件,也不会自动展开子模块内容。
另外,当前阶段请暂时避开
git reset --hard、
git clean等可能改变或删除工作区内容的命令。你现在学习的这套方式,是把历史版本另行导出,而不是让当前项目回退到旧版本。
- 作者帖子
- 在下方一键注册,登录后就可以回复啦。