远程同步
顶部工具栏常驻 Fetch、Pull、Push 三个按钮,也可以用单键快捷键 f、p、u 触发(在输入框、编辑器和弹窗中不会生效)。没有可拉取或可推送的内容时,Fox Git 只给出提示,不会隐藏按钮。
Pull
Pull 之前,Fox Git 会先 fetch 上游所在的 remote,并预览:ahead / behind、将拉取和将推送的提交、是否有未提交改动,以及远程提交与本地改动重叠的文件。
- 已是最新:只提示。
- 可以快进且没有重叠:直接快进拉取;有本地改动时自动贮藏后再恢复。
- 分叉或有重叠:打开同步对话框,列出双方提交,由你选择变基或合并。默认值遵循仓库的
pull.rebase配置。
Push 与发布分支
- 当前分支没有上游时,Push 会发布分支并设置上游。
- 远程有你本地没有的新提交时,会打开对话框:可以先拉取,或转为强制推送。
- 其他情况直接推送,并提示推送了几个提交。
Force Push with Lease
在命令面板中选择 Force Push with Lease。对话框会列出远程将丢失的提交和将推送的提交。Fox Git 会用 ls-remote 检查远程分支在上次 fetch 之后是否又有变化;如果有,会禁止执行,避免覆盖队友刚推送的内容。
认证弹窗
Fox Git 为每个 Git 进程设置 GIT_ASKPASS 和 SSH_ASKPASS,指向 Fox Git 自身。当 Git 或 SSH 需要用户名、密码、token 或口令时,应用内会弹出认证框,敏感输入会被遮挡。取消或 5 分钟未输入都按取消处理。
Fox Git 不保存、也不记录你在认证框中输入的内容;如果希望记住凭据,请使用系统 Git 的凭据助手(例如 macOS 钥匙串、Git Credential Manager)或 SSH agent。
冲突
变基或合并因冲突暂停后,工作台顶部会出现横幅,处理方式见冲突解决。