Xcode 15中如何启用Hide Change与Stage Change选项?解决项目差异
Xcode 15 Git行内选项差异原因及解决方法
差异原因
造成两个项目显示不同选项的核心原因通常有两种:
- 分离头指针(Detached HEAD)状态:当项目当前处于分离头指针模式(比如直接checkout了某个独立commit、tag,而非本地分支),Xcode会禁用暂存相关操作,仅保留
Discard Change选项——因为分离头指针场景下不推荐常规的提交流程。 - 自动暂存功能开启:Xcode的源代码控制设置中,若开启了「Automatically stage files」,所有代码更改会被自动暂存到Git索引中,此时行旁菜单不再显示
Stage Change(已自动完成暂存)和Hide Change(无未暂存更改可隐藏),仅保留Discard Change。
解决方法
修复分离头指针状态
- 打开Xcode的「Source Control > Repositories」,选中当前项目仓库,确认HEAD状态。
- 切换到本地分支:
- 选择「Source Control > Checkout Branch」,挑选已存在的本地分支(如main、master);
- 若需要基于当前commit创建分支,选择「Source Control > New Branch」,创建后自动切换到新分支。
关闭自动暂存设置
- 打开Xcode偏好设置(快捷键
Cmd+,),切换到「Source Control」标签页。 - 在「Commit」区域,取消勾选「Automatically stage files」选项。
- 重启Xcode后,行旁菜单会恢复显示全部三个选项。
验证Git仓库配置(极端情况)
若以上方法无效,打开终端进入项目根目录,执行以下命令检查Git配置:
git config --list
排查是否存在特殊配置(如core.autocrlf异常设置)导致暂存区失效,若有异常项,可通过git config --unset <配置项>移除。
内容的提问来源于stack exchange,提问作者Hamed Ghadirian
相关产品推荐
相关产品推荐

