我使用git checkout - <file>删除了我的project.pbxproj文件。我应该在本地删除分支并从原点拉出来吗?

时间:2015-06-04 22:13:36

标签: xcode git github version-control

我已经陷入了一些关于源代码控制的热水。

我刚刚获得了一个功能分支,我的团队中的另一个开发人员已经创建并开发了这个分支,这需要添加一些文件。然后他在项目中添加了一些额外的代码,我想在我提取新代码之前恢复到我开始使用的分支版本,以便我不必担心合并这些新文件。

因此,根据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?)吗?

我应该在本地删除分支并从原点拉出来吗?

我想要的只是这个分支的远程版本,它运行良好,在我的计算机上显示不变,以便我可以打开它并继续工作。

1 个答案:

答案 0 :(得分:1)

消息

delete mode 100644 ScrollingTextLabels.xcodeproj/project.pbxproj
合并(或拉动)期间的

表示该文件已在待合并分支中删除。它在另一个分支中不再存在,您的同事必须删除该文件。

删除分支和拉动通常无法解决任何问题。您已经从遥控器进行了所有更改(可能在origin/branch中)。从该提交中签出新分支,或重置为该分支(可能会丢失所有本地更改!)

使用git log origin/branchgitk查看分支的更改。您还可以仅使用git log origin/branch -- ScrollingTextLabels.xcodeproj/project.pbxproj显示此单个文件的日志。这应该告诉你,文件发生了什么以及它是否在分支中被删除。