Skip to content

Daily Git Workflow

zhangxh edited this page Aug 16, 2026 · 1 revision

日常 Git 工作流

推荐循环

确认仓库/分支
  → Fetch
  → 查看提交图
  → Pull
  → 修改文件
  → 查看 Diff
  → 暂存选定文件
  → 再看已暂存 Diff
  → 提交
  → 同步推送

这个顺序不是 Git 的硬性规定,但能降低在旧分支上开发、误提交临时文件或 Push 前才发现分叉的概率。

1. 确认仓库与当前分支

在“分支、更改与远程”顶部检查:

  • 当前活动仓库是不是预期项目;
  • 当前分支名是否正确;
  • ahead/behind 和 upstream;
  • 是否存在冲突或进行中的 Git 操作。

多根工作区尤其要先确认仓库。TriForge 会在长操作中检测仓库、分支或 HEAD 是否变化,但用户主动确认仍最可靠。

2. 获取远程状态

运行“获取全部远程”:

  • 逐个 Fetch 当前仓库所有 remote;
  • 启用 prune,清理远程已删除的跟踪引用;
  • 获取 Tag;
  • 单个 remote 失败不阻止其他 remote;
  • 可以取消剩余 Fetch。

Fetch 通常不修改工作区文件。完成后看提交图,判断三个远程是否位于同一节点。

3. 安全拉取

点击“拉取”:

  1. 工作区必须干净;
  2. 当前 HEAD 必须是有提交的本地分支;
  3. 有 upstream 时从 upstream 拉取;
  4. 没有 upstream 时要求选择一个 remote,并默认拉同名分支;
  5. 使用 Fast-forward only。

如果远程领先、本地没有独有提交,Pull 会快进;如果两边都新增提交,TriForge 停止并提供“打开提交图”或“选择合并方式”。它不会在不询问的情况下制造 Merge commit,也不会自动 Rebase。

4. 修改与查看状态

状态分组含义:

  • 冲突:Git 无法自动合并,需要人工编辑;
  • 已暂存:下一次提交会包含;
  • 更改/待提交:工作区有变动但尚未进入下一次提交;
  • 未跟踪:Git 还没开始跟踪的新文件。

重命名文件可能涉及旧路径和新路径,TriForge 在暂存/取消暂存时会处理相关路径。

5. Diff 审阅

至少检查:

  • 有没有密钥、Token、.env 或私有配置;
  • 生成文件和大二进制是否误加入;
  • 调试代码、日志输出是否应保留;
  • 已暂存内容是否和提交信息表达同一件事;
  • 同一文件是否还有未暂存内容。

Diff 不等于完整安全扫描;机密文件最好通过 .gitignore、Secret Scanner 和 pre-commit 流程共同防护。

6. 暂存

单文件:点击未暂存文件右侧 +

全部:点击更改列表末尾“暂存全部”。这相当于把所有当前变动作为候选快照,包括未跟踪文件;执行前先看 .gitignore

取消暂存不会丢文件内容,只是改变下一次提交包含的快照。

0.5.0 不支持逐行/逐块暂存。需要拆分一个文件内的改动时,可使用 VS Code 原生 SCM 的“暂存所选范围”,或在受信任终端执行 git add -p,然后刷新 TriForge。

7. 提交

提交只包含暂存区。若暂存区为空而工作区有变动,TriForge 会明确询问是否暂存全部并提交。

提交过程中会对比暂存内容指纹:如果你在输入提交信息期间改变了暂存区,本次提交会取消,要求重新审阅,避免提交和刚才看到的内容不一致。

Detached HEAD 时不会直接提交,而是建议先新建分支,避免提交失去可见分支引用。

提交信息建议

动词 + 具体对象 + 目的

例如:

修复自建 GitLab 路径前缀匹配
增加同步推送目标确认
完善 macOS 安装说明

避免“更新”“改一下”“fix”等无法说明内容的标题。

8. 推送

Push 只发送已经提交的内容。工作区还有未提交更改时,TriForge 会说明它们不会上传,并让你选择先提交或仅推送已有提交。

同步推送前检查:

  • 目标连接勾选是否正确;
  • 仓库名称是否一致;
  • 缺失仓库是否应为私有;
  • upstream 是否选对;
  • Git LFS 对象是否已按受信流程上传;
  • 项目依赖的 pre-push 检查是否已经手工运行。

文件操作的风险等级

操作 是否通常可逆 说明
暂存/取消暂存 不删除工作区内容
提交 可用 Revert 生成反向提交
放弃未暂存更改 已跟踪文件的未暂存内容可能永久丢失
删除未合并分支 有风险 仅在该分支可达的提交可能失去引用
Hard Reset 高风险 已跟踪工作区和暂存内容会被丢弃
Revert 最适合已共享历史 新建反向提交,不删除原历史

详细恢复选择见 回退、撤销与冲突恢复

.gitignore 建议

在第一次“暂存全部”之前建立 .gitignore。常见需要忽略的内容包括:

  • 依赖目录和构建输出;
  • 编辑器临时文件;
  • 本机缓存;
  • .env 和本地凭据文件;
  • 超大生成文件。

已经提交过的机密即使后来加入 .gitignore 也仍存在历史中;应立即撤销凭据并按团队流程清理历史。

Clone this wiki locally