变更与提交
“变更”视图(⌘2)是日常提交的主工作台。改动按四组展示,你可以精确地决定哪些内容进入下一次提交。
四组变更
| 分组 | 内容 |
|---|---|
| Conflicts | 合并、变基、拣选等操作暂停后仍有冲突的文件,选中后进入冲突解决 |
| Staged | 已加入 index、将进入下一次提交的改动 |
| Unstaged | 已跟踪文件中尚未暂存的改动 |
| Untracked | 尚未被 Git 跟踪的新文件 |
选中文件后右侧显示 diff。
暂存与取消暂存
- 文件:在文件行上暂存或取消暂存整个文件。
- 变更块(hunk):在 diff 的 hunk 条上暂存或取消暂存这一块。
- 选中行:在 diff 中选择若干行,只暂存或取消暂存这些行。
行级操作基于 git apply 实现,与命令行的部分暂存效果一致。
丢弃改动
丢弃同样支持文件、变更块和选中行三个粒度,也可以删除未跟踪文件,或对整个分组“全部丢弃”。
- 丢弃已跟踪文件只影响未暂存的部分,已暂存的内容会保留。
- 删除未跟踪文件使用
git clean。 - 所有丢弃操作都会弹出确认框并列出受影响的路径。丢弃的内容无法通过 Fox Git 撤回,请确认后再执行。
提交与 amend
在提交区填写提交信息并提交 Staged 中的改动。勾选 amend 可以修改上一条提交的信息,或把当前已暂存的改动合入上一条提交。如果上一条提交已经推送,amend 会改写已发布的历史,之后推送需要使用 Force Push with Lease。
提交后,历史视图会自动选中新提交。
贮藏
在变更视图头部或命令面板选择 Stash Changes…(⌘⇧S)新建贮藏,可选择:
- 全部改动;
- 仅未暂存的改动;
- 包含未跟踪文件。
“贮藏”视图(⌘5)列出所有贮藏。选中后可查看其中的文件与 diff,并执行 Apply、Pop、Drop,或从贮藏创建分支。Pop 和 Drop 需要确认。Fox Git 用贮藏的 SHA 重新定位 stash@{n},避免列表变化后作用到错误的条目。
Apply 或 Pop 产生冲突时,会进入冲突解决流程。