1

当前设置:

带有 Xcode 项目并托管 git 存储库的家庭 iMac。MacBook 用于在家外工作,通过 Xcode 克隆项目。

我可以毫无问题地将我在 iMac 上所做的更改拉到 MacBook 上,它将我在 MacBook 上所做的更改发送回我遇到问题的 iMac。

我进行了编辑,File > Source Control > Commit并且没有错误,并且File > Source Control > Push文件没有问题-没问题。

但是,在我的 iMac 上,我无法进行编辑,一旦 Xcode 启动,“M”就会出现在已编辑的文件旁边,显示已进行更改(我的 MacBook 上的那个),我无法恢复更改,我唯一能做的就是提交未编辑的文件并“还原”它。

4

1 回答 1

2

您正在对非裸存储库执行“推送”操作 -在 Git 文档中特别建议不要这样做。

发生的是推送操作在幕后更新存储库,而不是您的工作目录。因此,Git 将笔记本电脑上所有更改的文件视为“已更改”回 iMac 上的原始状态。如果您绝对确定在 iMac 上没有未提交的工作,则可以通过执行 a git reset --hard master(或任何您的分支名称)来解决此问题。

更好的解决方案是在 iMac 上创建另一个存储库,即“裸”存储库,您将把它视为共享的全局存储库。每个工作目录都会从全局存储库中拉取和推送到全局存储库,从而避免了这个问题。

于 2012-10-11T22:11:26.800 回答