Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode项目显示了两个git存储库(只有一个是正确的);两者都有_Xcode_Git - Fatal编程技术网

Xcode项目显示了两个git存储库(只有一个是正确的);两者都有

Xcode项目显示了两个git存储库(只有一个是正确的);两者都有,xcode,git,Xcode,Git,我是git的新手。因此,我感到困惑,可能没有使用正确的术语 我有两个单独的Xcode项目,每个项目都有自己的本地存储库。尽管这些项目有相似的名称,但每个项目都有独立的源文件。我对每个项目都做了几次提交,但是当我在一个项目中提交时,提交会同时出现在两个项目中。我的新项目在git navigator中显示了两个可能与问题相关的项目。当我进行新提交时,旧项目没有在Xcode中打开 每个项目都有自己的.git文件夹 详情: Old Project 1 Scheduler:显示一个存储库,但我在新项目中所

我是git的新手。因此,我感到困惑,可能没有使用正确的术语

我有两个单独的Xcode项目,每个项目都有自己的本地存储库。尽管这些项目有相似的名称,但每个项目都有独立的源文件。我对每个项目都做了几次提交,但是当我在一个项目中提交时,提交会同时出现在两个项目中。我的新项目在git navigator中显示了两个可能与问题相关的项目。当我进行新提交时,旧项目没有在Xcode中打开

每个项目都有自己的.git文件夹

详情:

Old Project 1 Scheduler:显示一个存储库,但我在新项目中所做的最后一次提交将显示在那里

NewProject2Scheduler6:显示了两个存储库,我在那里做的最后一次提交显示在这两个存储库中


为什么Project 2同时显示这两个存储库,这就是我的提交最终同时显示这两个存储库的原因吗?如何纠正这一点?这种情况以前发生过,我在旧存储库中执行了git reset HEAD^以删除不正确的提交。我想永远停止这种行为。我对在终端上使用git命令犹豫不决。

谜团已经解开。我通过复制项目1中的许多文件创建了项目2,但三个图像文件最终作为对项目1文件的引用,而不是副本。当我删除这些引用并将副本添加到Project2时,GitNavigator停止显示Project1存储库

概要:项目2显示了两个Git,因为项目2引用了项目1中的一些文件

有两种方法可以解决此问题:

A.手动:打开Project 2,逐个选择每个文件,并检查Identity and Type inspector中显示的完整路径是否为Project 2路径。修复引用项目1的所有文件

B.使用终端:Xcode项目控制文件是一个文本文件,因此可以使用终端命令自动检查所有完整路径,因此:

我假设这两个项目分别命名为Project_1和Project_2,并且它们的项目文件夹共享同一父文件夹

复制项目_2.xcodeproj,它实际上是一个捆绑包

将副本的文件名后缀从.xcodeproj I used.xxx更改为.xcodeproj。复制的文件将成为包含四项的子文件夹,其中一项是文本文件project.pbxproj

发射终端

在终端中,执行cd path_to_project_2_子文件夹。快捷方式:键入“cd”,空格,将第2步中创建的文件夹拖动到终端,然后单击“返回”

十,。验证步骤。在终端中,执行ls以显示四项。它们应该是:

project.pbxproj  project.xcworkspace/  xcshareddata/  xcuserdata/
在终端中,执行字符串project.pbxproj | grep../project_1/。这将显示project.pbxproj中引用项目1的所有行。“|”是一个管道命令,它将字符串输出发送到过滤字符串的grep。因为我的两个项目名称只有一个字符不同,所以我用“../”和“/”包围了项目名称,以将输出限制为属于project_1的目录和文件,但如果两个名称不相似,则可以使用裸项目名称。命令和参数区分大小写。您应该看到一些引用项目_1的行。您还可以在文本编辑器中打开project.pbxproj并搜索包含project_1的行。 其中一个文件sharing.png突然出现:

1F4E32C32343DE1A0053C239/*sharing.png*/={isa=PBXFileReference; lastKnownFileType=image.png;name=sharing.png;path= ../../../Project_1/sharing.png;sourceTree=;}

在Xcode中打开Project_2并修复在strings命令中显示为引用的文件。在此过程中,使用上面的方法A来验证您的工作

检查GIT navigator是否仅显示项目2。您可能必须关闭Xcode并重新启动


谜团解开了。我通过复制项目1中的许多文件创建了项目2,但三个图像文件最终作为对项目1文件的引用,而不是副本。当我删除这些引用并将副本添加到Project2时,GitNavigator停止显示Project1存储库

概要:项目2显示了两个Git,因为项目2引用了项目1中的一些文件

有两种方法可以解决此问题:

A.手动:打开Project 2,逐个选择每个文件,并检查Identity and Type inspector中显示的完整路径是否为Project 2路径。修复引用项目1的所有文件

B.使用终端:Xcode项目控制文件是一个文本文件,因此可以使用终端命令自动检查所有完整路径,因此:

我假设这两个项目分别命名为Project_1和Project_2,并且它们的项目文件夹共享同一父文件夹

复制项目_2.xcodeproj,它实际上是一个捆绑包

将副本的文件名后缀从.xcodeproj I used.xxx更改为.xcodeproj。复制的文件将成为包含四项的子文件夹,其中一项是 这是一个文本文件project.pbxproj

发射终端

在终端中,执行cd path_to_project_2_子文件夹。快捷方式:键入“cd”,空格,将第2步中创建的文件夹拖动到终端,然后单击“返回”

十,。验证步骤。在终端中,执行ls以显示四项。它们应该是:

project.pbxproj  project.xcworkspace/  xcshareddata/  xcuserdata/
在终端中,执行字符串project.pbxproj | grep../project_1/。这将显示project.pbxproj中引用项目1的所有行。“|”是一个管道命令,它将字符串输出发送到过滤字符串的grep。因为我的两个项目名称只有一个字符不同,所以我用“../”和“/”包围了项目名称,以将输出限制为属于project_1的目录和文件,但如果两个名称不相似,则可以使用裸项目名称。命令和参数区分大小写。您应该看到一些引用项目_1的行。您还可以在文本编辑器中打开project.pbxproj并搜索包含project_1的行。 其中一个文件sharing.png突然出现:

1F4E32C32343DE1A0053C239/*sharing.png*/={isa=PBXFileReference; lastKnownFileType=image.png;name=sharing.png;path= ../../../Project_1/sharing.png;sourceTree=;}

在Xcode中打开Project_2并修复在strings命令中显示为引用的文件。在此过程中,使用上面的方法A来验证您的工作

检查GIT navigator是否仅显示项目2。您可能必须关闭Xcode并重新启动


我也有同样的问题,我想这是因为我在一个项目上初始化了两次git。首先,当我想创建项目文件夹时,我在终端中执行了git init,后来当我想通过Xcode创建一个swift项目来创建项目本身时,我没有删除initiate a git repo for project的复选标记。因此,我为一个项目启动了两次git回购。

我也遇到了同样的问题,我认为这是因为我在一个项目上初始化了git两次。首先,当我想创建项目文件夹时,我在终端中执行了git init,后来当我想通过Xcode创建一个swift项目来创建项目本身时,我没有删除initiate a git repo for project的复选标记。因此,我为一个项目启动了两个git回购。

您是在使用github还是另一个git存储库托管服务?或者,您所有的工作都是本地的吗?当您选择错误的提交时,它在分支和文件方面显示了什么?@MCI,我在项目2中使用GitHub,但我从来没有做过推送,当我遇到这个问题时,我删除了GitHub存储库并将其从Xcode中删除。现在这两个项目都是完全本地的。@VonC:当我在Xcode中打开项目1时,一个文件显示了几个最近的更改。其他文件显示没有正确的更改。当我在Xcode中打开Project2时,git navigator将显示两个项目,如第二个屏幕截图所示。为Project 1列出的文件是Project 1文件,我在那里看到的更改与在Xcode中打开Project 1时看到的更改相同。因此,两个项目看起来都正常,但项目2显示了两个本地存储库,当我在项目2中进行提交时,两个项目都是使用相同的消息提交的。@Jeff当您单击错误的提交时,是否看到来自另一个项目的文件?Project2显示这两个项目的事实无疑是一个问题:提交视图是一个过滤器,它将显示当前项目中所有repo的所有提交。您使用的是github还是另一个git存储库托管服务?或者,您所有的工作都是本地的吗?当您选择错误的提交时,它在分支和文件方面显示了什么?@MCI,我在项目2中使用GitHub,但我从来没有做过推送,当我遇到这个问题时,我删除了GitHub存储库并将其从Xcode中删除。现在这两个项目都是完全本地的。@VonC:当我在Xcode中打开项目1时,一个文件显示了几个最近的更改。其他文件显示没有正确的更改。当我在Xcode中打开Project2时,git navigator将显示两个项目,如第二个屏幕截图所示。为Project 1列出的文件是Project 1文件,我在那里看到的更改与在Xcode中打开Project 1时看到的更改相同。因此,两个项目看起来都正常,但项目2显示了两个本地存储库,当我在项目2中进行提交时,两个项目都是使用相同的消息提交的。@Jeff当您单击错误的提交时,是否看到来自另一个项目的文件?Project2显示这两个项目的事实无疑是一个问题:提交视图是一个过滤器,它将显示当前项目中所有repo的所有提交。