当前设置:
家庭iMac与Xcode项目并托管git存储库。通过Xcode克隆项目的MacBook远离家乡。
我可以毫不费力地将我的iMac上的更改发送到MacBook,它将我在MacBook上所做的更改发送回我遇到问题的iMac。
我进行了编辑,File > Source Control > Commit
无误地运行,File > Source Control > Push
文件 - 没问题。
但是,在我的iMac上我无法进行编辑,一旦Xcode启动,编辑后的文件旁边会显示“M”,表示已经进行了更改(我的MacBook上的那个),我无法恢复改变,我唯一能做的就是提交未经编辑的文件并“恢复”它。
答案 0 :(得分:2)
您正在对非裸存储库执行“推送”操作 - 这是Git文档中针对特别推荐的。
推送操作会在幕后更新存储库,但不您的工作目录会发生什么。因此,Git将您笔记本电脑上的所有文件更改为“更改”回到iMac上的原始状态。你可以解决这个问题,如果你完全确定你没有在iMac上做过未提交的工作,可以做一个git reset --hard master
(或你的分支名称)。
更好的解决方案是在iMac上创建另一个存储库,这是一个“裸”存储库,您将其视为共享的全局存储库。每个工作目录都会从全局存储库中拉出并推送到全局存储库,从而避免了这个问题。