我是iOS开发的新手。
我想知道是否有办法使用带有Xcode内置SCM功能的git存储库?
我正在使用Xcode 4.2和GitHub。
考虑到我已经在xcode中成功设置了我的git ...你能告诉我它是如何工作的吗?你知道,我想知道其他用户在做什么。比如说,他们也可以访问GitHub中的git存储库。所以,我想知道的是,我可以在不进入网站的情况下看到他们对存储库的更改吗?我尝试了xcode颠覆,它为我的更改显示了一些标记,如'M','A','D'和其他标记,然后每当更改来自其他用户时显示'U'。是这样的git设置呢?我还能看到他们的实时变化吗?
答案 0 :(得分:3)
是的,你可以。当您创建一个新项目时,Xcode会为它创建一个新的git存储库。从本地存储库创建远程存储库有点痛苦,但可行。
您还可以输入远程仓库的URL并将其克隆到本地系统上。为此,最简单的方法是使用“欢迎使用Xcode”窗口(命令shift 1)。单击“连接到存储库”并输入远程URL,您应该接受凭据挑战,然后它将允许您克隆它。
答案 1 :(得分:1)
我将给出基本答案和高级答案。
基本答案:完成拉动后,转到文件 - >源代码管理 - >存储库。然后,您可以单击您的存储库并查看其他人(和您自己)所做的所有提交。每次提交旁边都有一个小的披露三角形。单击它将显示已更改文件的列表。单击“显示更改”按钮将允许您检查每个更改的详细信息。
高级回答:
你将不得不学习与git有点不同的操作,这对你来说似乎很陌生,因为你已经习惯了颠覆性的做事方式。坚持下去。一旦掌握了它,Git就很棒了。
首先要做的事情。当您想从中央存储库(github)检索更改时,您有两种选择如何执行此操作。你可以获取或拉取。使用fetch,更改将被拉入您的本地存储库,但在您这样说之前不会合并。使用pull,可以一步下载和合并更改。许多人认为拉是更好的选择,因为它可以一步完成两项任务。
然而,使用pull使得看到发生的事情变得更加困难,除非你对git命令有一定的了解。
要查看更改内容,请从终端执行以下操作:
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而不喜欢这些变化,你可以做git reset --hard <commit of the last good commit>
,然后你会回到你所在的地方。
学习从终端做这些事情似乎很难,但它给你巨大的力量,所以值得学习。