1

我是iOS开发的新手。

我想知道是否有办法使用带有 Xcode 内置 SCM 功能的 git 存储库?

我正在使用 Xcode 4.2 和 GitHub。

考虑到我已经在 xcode 中成功设置了我的 git ......你能告诉我它是如何工作的吗?你看,我想知道其他用户在做什么。比如说,他们还可以访问 GitHub 中的 git 存储库。所以,我想知道的是,我可以在不去网站的情况下看到他们对存储库的更改吗?我已经尝试过 xcode 颠覆,它会显示一些标记,如“M”、“A”、“D”等,用于我的更改,然后在更改来自其他用户时显示“U”。git设置也是这样吗?我还能看到他们的实时变化吗?

4

2 回答 2

3

是的你可以。当您创建一个新项目时,Xcode 会为它创建一个新的 git 存储库。从本地存储库创建远程存储库有点痛苦,但可行。

您还可以输入远程存储库的 URL 并将其克隆到本地系统。为此,最简单的方法是使用“Welcome to Xcode”窗口(command shift 1)。单击“连接到存储库”并输入远程 URL,您应该会被要求提供凭据,然后它会提供让您克隆它。

于 2012-06-07T02:39:07.987 回答
1

我将给出基本答案和高级答案。

基本答案:拉取后,转到 File->Source Control->repositories。然后,您可以单击您的存储库并查看其他人(和您自己)所做的所有提交。每个提交旁边都有一个小的披露三角形。单击它将显示已更改文件的列表。单击“显示更改”按钮将允许您检查每个更改的详细信息。

进阶答案:

你将不得不学习用 git 操作有点不同,因为你已经习惯了颠覆性的做事方式,所以它对你来说似乎很陌生。坚持下去。一旦你掌握了它的窍门,Git 就很棒。

第一件事。当您想从中央存储库 (github) 中检索更改时,您有两种选择。您可以获取或拉取。使用 fetch,更改将被拉入您的本地存储库,但在您说之前不会合并。使用拉取,只需一步即可下载和合并更改。许多人认为 pull 是更好的选择,因为它一步完成了这两项任务。

但是,除非您对 git 命令有相当的了解,否则使用 pull 会使您更难看到发生了什么。

要查看发生了什么变化,请从终端执行以下操作:

git checkout master 
   (Make sure we're on the master branch)
git fetch 
  (This command pulls down the changes, but keeps them in their own <remote_name>/<branch name> branch until you explicitly merge them)
git diff origin/master 
  (This command shows you the differences between what you just pulled down and your local copy of master)

您还可以使用 git difftool 命令(如果已配置)来查看 FileMerge 等图形工具中的差异。

一旦您查看了更改并感到满意,将它们带入您的本地分支,您将执行以下操作:

git merge origin/master
   (merge origin/master with the branch I'm on - master)

此过程使您可以灵活地在合并之前检查事物。如果您不满意,例如,您可能希望开发人员恢复他的更改。

现在,可以用 git pull 做同样的事情,但是由于更改是自动合并的,所以它有点复杂。例如,在拉取之后,要查看差异,您必须弄清楚拉取之前的提交 ID 是什么,然后执行以下操作:

git diff <id of commit before pull>..

结果相同,只是稍微复杂一点。

git 的好处在于它非常努力地避免丢失任何数据。因此,例如,如果您 git pull 并且不喜欢更改,则可以执行 agit reset --hard <commit of the last good commit>并且您将立即回到您所在的位置。

从终端学习做这些事情可能看起来很困难,但它给了你巨大的力量,所以值得努力学习。

于 2012-06-07T14:22:02.600 回答