我已经陷入了一些关于源代码控制的热水。
我刚刚获得了一个功能分支,我的团队中的另一个开发人员已经创建并开发了这个分支,这需要添加一些文件。然后他在项目中添加了一些额外的代码,我想在我提取新代码之前恢复到我开始使用的分支版本,以便我不必担心合并这些新文件。
因此,根据git的建议,我取消了我所做的和使用的更改:
git checkout -- ScrollingTextLabels.xcodeproj/project.pbxproj
接下来是:
git pull
我曾假设pull会用来自origin的那个替换project.pbxproj文件,但是git吐了很多以“删除模式”开头的行,最令人不安的是:
delete mode 100644 ScrollingTextLabels.xcodeproj/project.pbxproj
每当我尝试在此分支上打开项目时,我现在从Xcode收到以下错误消息:
项目/Users/myname/Documents/Code/organization/product-ios/ScrollingTextLabels.xcodeproj无法打开,因为它缺少project.pbxproj文件。
我已经能够切换到其他仍然正常工作的分支,并且必须有他们的project.pbxproj文件。
另外,我试图使用git reset --hard
无效。我应该强制覆盖(la How do I force "git pull" to overwrite local files?)吗?
我应该在本地删除分支并从原点拉出来吗?
我想要的只是这个分支的远程版本,它运行良好,在我的计算机上显示不变,以便我可以打开它并继续工作。
答案 0 :(得分:1)
消息
delete mode 100644 ScrollingTextLabels.xcodeproj/project.pbxproj
合并(或拉动)期间的表示该文件已在待合并分支中删除。它在另一个分支中不再存在,您的同事必须删除该文件。
删除分支和拉动通常无法解决任何问题。您已经从遥控器进行了所有更改(可能在origin/branch
中)。从该提交中签出新分支,或重置为该分支(可能会丢失所有本地更改!)
使用git log origin/branch
或gitk
查看分支的更改。您还可以仅使用git log origin/branch -- ScrollingTextLabels.xcodeproj/project.pbxproj
显示此单个文件的日志。这应该告诉你,文件发生了什么以及它是否在分支中被删除。