XCode 4.2和本地git存储库

问题描述:

我有一个项目,我一直在定期添加文件,最近才注意到只有一些文件正在由本地git存储库进行管理。换句话说,当我修改某些文件时,没有指示源控制状态(如'M')。XCode 4.2和本地git存储库

展现此行为的文件是通过在XCode外部复制项目中的现有文件而创建的文件。例如,我会出去查找并制作项目中已有文件的副本,重命名它,然后返回到XCode并将该文件添加到项目中。

当我在XCode中右键单击这些文件并选择源代码管理时,每个菜单项都会灰显。我甚至无法将它们添加到源代码管理。

我有一种感觉,复制已经在项目中的文件导致了一个问题,但我不知道如何解决它。我已经读过,我可以通过发布bash命令递归地从项目中删除源代码控制,但是我真的不会失去我已有的源代码控制历史记录。

在此先感谢您的帮助。

+0

我无法重现这一点 - 当我在Finder中的项目中复制文件时,将其添加到XCode中,一个灰色的“?”在XCode项目视图中出现“M”(源代码管理符号)的位置。是否手动(通过终端)将受影响的文件添加到您的git仓库? – simont 2012-02-18 03:34:41

+0

不知道如何做到这一点,但我会查找必要的命令并回报。 – Moebius 2012-02-18 04:31:39

+0

我使用终端将文件添加到git。谢谢。我可以将您的评论标记为答案吗? – Moebius 2012-02-18 04:56:47

当我在XCode中右键单击这些文件并选择源代码管理时,每个菜单项都是灰色的。我甚至无法将它们添加到源代码管理。

我真的宁愿不会失去我已有的源代码控制历史记录。

我无法在XCode 4.2中重现此操作。手动将文件添加到git存储库应该可以工作 - 但我无法测试这个。

步骤手动将文件添加到Git仓库:

  • 打开终端
  • 浏览到您的Xcode项目所在的文件夹
  • 运行git status,它会告诉你哪些文件目前未被跟踪。
  • 要将所有未跟踪文件添加到git,请使用git add -A - 这将添加所有未跟踪文件,并删除已从git存储库中删除的所有文件。
  • 如果您想要选择要添加的文件:git add <filename>
  • 承诺git:git commit

完成此操作后,XCode应识别出正在跟踪文件,并让您通过XCode源代码管理命令提交更改。

+0

小心 - 但这也会将UserInterfaceState.xcuserstate文件添加到存储库,结果非常不愉快。您应该先找到该文件,然后将其路径写入名为.gitignore的文件中,然后再运行add命令。 – gstercken 2012-03-15 04:19:12