使用Git管理现有的Xcode项目

119

我正在尝试弄清楚如何在我的项目工作流中使用git,我有一个现有的Xcode项目想要放入代码库中。我认为我已经在组织者下正确设置了仓库,但是源代码控制菜单被禁用了。
显然,如果您开始一个新项目,那么很容易做到这一点,但我该如何导入具有快照和所有元素的现有项目?

我正在使用Xcode 4和git 1.7.4。

此外,如果有任何关于git配置和最佳实践的好的指南,那就太好了。我有点晚了,所以任何可以让我迅速上手的内容都可以。

7个回答

181

GitHub在help.github.com提供了一些非常好的Git教程。

要进行仓库的初始设置,请打开终端窗口并CD到项目目录。一旦到达那里,请键入

git init
git add .
git commit -m "Initial commit"

重新启动Xcode。现在应该已经设置好仓库,您将能够在Xcode 4中管理它。


5
添加 .gitignore 文件以避免将所有构建目录和其他无用文件添加为跟踪文件,这部分在哪里? - Fraggle
8
这种方法会将.xcuserstate和其他元数据添加到仓库中,这些内容不应该被版本控制。建议您先在项目文件夹中创建.gitignore文件,并列出这些元数据文件类型,然后再运行“git add .”。 - kakyo
完全不起作用。Xcode从未将其识别为存储库。 - Jonny
1
我正在使用Xcode 11。我能够通过使用源代码控制、提交,然后进行第一次提交来将本地git存储库添加到现有项目中。这样就创建了.git文件夹等。(不需要git initgit add .git commit -m。) - Jeff
在 Xcode 14 中,您可以通过选择:源代码控制 > 新建 Git 存储库... > 创建,将 Git 添加到现有项目中。 - P. Stern

113

Xcode 7(和8)

如果您正在开始一个新项目,只需在设置期间勾选创建Git仓库即可。(然后跳到下面的提交部分。)

enter image description here

如果你正在处理一个现有的项目,那么请前往 Xcode > Preferences... > Source Control 并勾选 Enable Source Control 框。

enter image description here

然后在主要的源代码控制菜单中选择创建工作副本...

enter image description here

如果您遇到“请告诉我你是谁”的错误,请查看这个问题/答案或其中的其他链接问题。

完成后,对Xcode项目文件进行任何更改。然后返回源代码控制菜单,选择提交

enter image description here

请编写提交信息并点击“提交”按钮。(如果提交按钮被禁用,请对您的项目进行任何微小更改,然后再试一次。)

enter image description here

在Github中登录并创建一个新的存储库

enter image description here

称呼它为任何你想要的,但是不要现在添加README、.gitignore或许可证。你可以稍后再添加这些内容。现在这样做会使同步更加困难。

enter image description here

复制您的代码库链接。

enter image description here

前往源代码控制>你的分支名称>配置

enter image description here

点击 Remotes 选项卡 > "+" 按钮 > 添加远程...

enter image description here

输入 GitHub 仓库名称并粘贴地址。

enter image description here

在添加远程仓库之后,在“源代码控制”菜单中单击“推送”。输入您的Github用户名和密码即可。这样,您的项目现在应该已经被复制到Github上了。
(我最开始遇到了一些问题,我的用户名和密码没有被接受。如果您也遇到了此问题,请前往“Xcode” > “偏好设置...” > “账户” > “您的新仓库”,然后输入您的用户名和密码,然后再次尝试“推送”。)

enter image description here

你可以添加README和其他文件,但如果你是从Web上进行操作,那么在提交其他更改之前,你需要在Xcode中进行“源代码控制”>“拉取”。现在,每当你在Xcode中进行更改时,你只需要进行“提交”和“推送”即可。我主要是从这里学习到了这种方法。
另请参阅: - Git和GitHub基础知识 - 如何为Swift在Xcode中添加.gitignore文件

这是迄今为止最简单的解决方案。你能告诉我在Xcode>首选项>账户>添加仓库中添加仓库的含义吗? - AceN
@AceNeerav,这允许您存储另一个仓库的凭据,以便您不必每次都输入它们。有关更多详细信息,请参阅此文档 - Suragch
1
@steve-o,GitLab也是一个不错的选择。它允许免费使用私人代码库。我成功地将Xcode配置为类似于上面的解答。 - Suragch
1
这在最近几年发生了相当大的变化。例如,默认分支现在是主分支,Xcode 12的用户界面看起来有很大不同。 - Jeff Muir
1
Xcode 13 有更新吗? - Maya
显示剩余2条评论

44

我刚刚完成了几个项目的这个过程,并遇到了一些问题。这里是我的流程,大部分是从本页/网站上其他答案中拼凑而成的。顺序在这里非常重要。

  1. 打开终端并进入包含.xcodeproj文件的目录
  2. git init
  3. 在Finder中输入新创建的.git文件夹(与.xcodeproj文件在同一目录下)。找到info/exclude,打开并添加以下行:.DS_Store和xcuserdata/
  4. 不确定是否需要,但我使用终端将info/exclude复制到.gitignore文件中
  5. git add .
  6. git commit -m“Initial commit”
  7. 现在要让XCode实际上看到仓库。在项目组织器中,您首先必须从项目选项卡中删除项目。然后只需重新打开项目即可。这将检测到刚创建的GIT仓库
  8. 在组织器的存储库选项卡中,我然后从主支线分支/切换到我正在使用的任何版本。

希望这可以帮助一些人,而不会太冗余。对于新手使用GIT处理现有项目来说,现在似乎很简单,但肯定是具有挑战性的。


2
感谢分享您的经验!逐步操作非常棒。 - AndyD273
非常好的逐步指南,对于像我这样还不熟悉Git的人来说非常有帮助。 - Nicolas Miari
1
对我来说,使用4.6.2版本,第7步是不必要的。谢谢! - cloudsurfin
我无法解释这有多么有帮助!第7步甚至在最新的Xcode版本中也有帮助! - Zephyer
根据上述步骤以及其他帖子和svn经验,我学到了如何为Xcode创建.gitignore文件。可以在GitHub上找到要忽略的项目列表 https://github.com/github/gitignore/blob/master/Global/Xcode.gitignore - Bhavesh
即使我执行了第七步,也没有帮助到我。 - Jonny

10

查看我关于该主题的帖子 在XCode中为现有项目设置git存储库。上述内容是正确的,但是在您提交更改时,它将包括UserInterfaceState,并且这可能很麻烦,因为每次您在xcode中执行任何操作时,甚至是简单地浏览项目中的文件或文件夹时,此文件都会更新。


1
如果您的XCODE 7无法连接到现有的GIT代码库,请尝试以下操作:
xcrun git config --global user.email your@email.com
xcrun git config --global user.name "your name"

1
较新版本的Xcode简化了将git添加到现有Xcode项目的过程。在Xcode中打开您的项目,选择“源代码”>“新建Git仓库”。一个对话框会弹出。

enter image description here

在项目旁边选中复选框,然后点击“创建”按钮将Git添加到项目中。

0

注意:适用于Xcode 11

使用终端进入项目目录

git init

git add .

git commit -m "Initial commit"

完成后重新启动Xcode,选择“源代码控制导航器”,然后选择主分支并右键单击,选择“创建远程”选项。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接