-
Notifications
You must be signed in to change notification settings - Fork 0
Daily Git Workflow
确认仓库/分支
→ Fetch
→ 查看提交图
→ Pull
→ 修改文件
→ 查看 Diff
→ 暂存选定文件
→ 再看已暂存 Diff
→ 提交
→ 同步推送
这个顺序不是 Git 的硬性规定,但能降低在旧分支上开发、误提交临时文件或 Push 前才发现分叉的概率。
在“分支、更改与远程”顶部检查:
- 当前活动仓库是不是预期项目;
- 当前分支名是否正确;
- ahead/behind 和 upstream;
- 是否存在冲突或进行中的 Git 操作。
多根工作区尤其要先确认仓库。TriForge 会在长操作中检测仓库、分支或 HEAD 是否变化,但用户主动确认仍最可靠。
运行“获取全部远程”:
- 逐个 Fetch 当前仓库所有 remote;
- 启用 prune,清理远程已删除的跟踪引用;
- 获取 Tag;
- 单个 remote 失败不阻止其他 remote;
- 可以取消剩余 Fetch。
Fetch 通常不修改工作区文件。完成后看提交图,判断三个远程是否位于同一节点。
点击“拉取”:
- 工作区必须干净;
- 当前 HEAD 必须是有提交的本地分支;
- 有 upstream 时从 upstream 拉取;
- 没有 upstream 时要求选择一个 remote,并默认拉同名分支;
- 使用 Fast-forward only。
如果远程领先、本地没有独有提交,Pull 会快进;如果两边都新增提交,TriForge 停止并提供“打开提交图”或“选择合并方式”。它不会在不询问的情况下制造 Merge commit,也不会自动 Rebase。
状态分组含义:
- 冲突:Git 无法自动合并,需要人工编辑;
- 已暂存:下一次提交会包含;
- 更改/待提交:工作区有变动但尚未进入下一次提交;
- 未跟踪:Git 还没开始跟踪的新文件。
重命名文件可能涉及旧路径和新路径,TriForge 在暂存/取消暂存时会处理相关路径。
至少检查:
- 有没有密钥、Token、
.env或私有配置; - 生成文件和大二进制是否误加入;
- 调试代码、日志输出是否应保留;
- 已暂存内容是否和提交信息表达同一件事;
- 同一文件是否还有未暂存内容。
Diff 不等于完整安全扫描;机密文件最好通过 .gitignore、Secret Scanner 和 pre-commit 流程共同防护。
单文件:点击未暂存文件右侧 +。
全部:点击更改列表末尾“暂存全部”。这相当于把所有当前变动作为候选快照,包括未跟踪文件;执行前先看 .gitignore。
取消暂存不会丢文件内容,只是改变下一次提交包含的快照。
0.5.0 不支持逐行/逐块暂存。需要拆分一个文件内的改动时,可使用 VS Code 原生 SCM 的“暂存所选范围”,或在受信任终端执行 git add -p,然后刷新 TriForge。
提交只包含暂存区。若暂存区为空而工作区有变动,TriForge 会明确询问是否暂存全部并提交。
提交过程中会对比暂存内容指纹:如果你在输入提交信息期间改变了暂存区,本次提交会取消,要求重新审阅,避免提交和刚才看到的内容不一致。
Detached HEAD 时不会直接提交,而是建议先新建分支,避免提交失去可见分支引用。
动词 + 具体对象 + 目的
例如:
修复自建 GitLab 路径前缀匹配
增加同步推送目标确认
完善 macOS 安装说明
避免“更新”“改一下”“fix”等无法说明内容的标题。
Push 只发送已经提交的内容。工作区还有未提交更改时,TriForge 会说明它们不会上传,并让你选择先提交或仅推送已有提交。
同步推送前检查:
- 目标连接勾选是否正确;
- 仓库名称是否一致;
- 缺失仓库是否应为私有;
- upstream 是否选对;
- Git LFS 对象是否已按受信流程上传;
- 项目依赖的
pre-push检查是否已经手工运行。
| 操作 | 是否通常可逆 | 说明 |
|---|---|---|
| 暂存/取消暂存 | 是 | 不删除工作区内容 |
| 提交 | 是 | 可用 Revert 生成反向提交 |
| 放弃未暂存更改 | 否 | 已跟踪文件的未暂存内容可能永久丢失 |
| 删除未合并分支 | 有风险 | 仅在该分支可达的提交可能失去引用 |
| Hard Reset | 高风险 | 已跟踪工作区和暂存内容会被丢弃 |
| Revert | 最适合已共享历史 | 新建反向提交,不删除原历史 |
详细恢复选择见 回退、撤销与冲突恢复。
在第一次“暂存全部”之前建立 .gitignore。常见需要忽略的内容包括:
- 依赖目录和构建输出;
- 编辑器临时文件;
- 本机缓存;
-
.env和本地凭据文件; - 超大生成文件。
已经提交过的机密即使后来加入 .gitignore 也仍存在历史中;应立即撤销凭据并按团队流程清理历史。
当前文档对应 TriForge Git 0.5.1。