在Mac上使用Git和GitX管理Xcode项目的快速指南

5
在mac上使用Git感觉非常痛苦,而且Git文档也很庞大。也许有人有一篇绝密的博客文章或者视频教程可以分享,简单快速地解释基础知识?
创建存储库。非常麻烦。
使用GitX打开存储库:痛苦。
在Xcode中工作,然后提交更改:不知道,可能也很麻烦。
将存储库克隆到其他几个拥有自己的mac的开发人员,以便他们开始合作完成项目:哦,天啊,我的头要爆炸了......需要医生!
以某种方式合并这些已克隆的存储库,以便每个人都可以获得更新后的存储库,其中包含其他任何人的更改:红色警报!
现在我感觉我需要一个月来理解它。如果有人能指出真正有用的资源,不强迫我读几天的话,我会非常高兴......或者有一本很好的、简洁的书能解释这个疯狂的东西吗?

2
如果你认为在GitX中创建一个仓库并打开它(基本上是单个命令)很麻烦...我不确定你希望教程能解决什么问题。 - Cascabel
5个回答

4
Git是非常庞大的,你可以花一个月的时间学习它的流程,但你也可以只掌握一些基本概念就能拥有非常好的工作流。我使用命令行,因为它允许你专注于这些基础知识,并在需要时进行扩展。这些基本命令包括“pull”、“push”、“init”和“commit -am"message"”。稍后,你可以在gitref.org了解分支和变基。
作为一个Mac Xcode + Git用户,我强烈推荐DTerm来使生活更加轻松。一个关键的命令就可以带出一个浮动的终端窗口,CD到当前活动文件所在的目录中。在XCode中,这意味着你将立即进入一个Git控制的目录。
所以,我的工作流程如下:
1. 在终端中使用“git init”创建一个存储库。 2. 创建Github存储库。 3. 按照Github的说明将两者关联起来。 4. 当在项目中工作时,按Shift-Command-Enter键可以打开一个浮动的终端窗口。 5. 输入“git commit -am "commit message"”以提交所有当前更改。 6. 相同的快捷键加上“git pull”或“git push”用于从代码存储库中拉取更改或将更改推送到代码存储库。
我发现命令行比GitX更容易与Git建立起更好的工作关系,特别是如果你使用类似DTerm这样的工具。
想要了解更多信息,请参考gitref.org。祝你好运!

2
打开终端窗口。
创建存储库:
cd project-dir
git init

在 GitX 中打开存储库:
cd project-dir
gitx

提交更改:
git status
git add .  # or individual files
git commit

(从一开始)设置一个.gitignore文件是个好主意。阅读《Pro Git》书籍或查看git-scm.com上的一些视频教程,可以快速入门。Linus的视频主要是对实现的描述以及对其他版本控制系统的抱怨;第二个视频非常有用。

1

我在OSX下使用git已经有6个月了(虽然不是与Xcode一起使用)。它非常好用!但是,确实是一个痛苦的经历,有时候需要一个陡峭的学习曲线,特别是当项目中其他人都是Windows开发人员(有更多的git客户端选择)并且反对OSX(不愿意或无法提供帮助)的时候。但是,从长远来看,这是值得付出努力的。它是可行的!一旦你掌握了基础知识,你会发现它比Subversion好10倍。合并只是工作而已。冲突几乎成为过去式。

但是我的建议是,忘记GitX,它很糟糕。我一开始就用它,很快就意识到它不能做任何你不能轻松从命令行中完成的事情(至少18个月前是这样)。它也做得少得多。所以你最终还是要进入终端...这是来自一个通常因为自己的无能而讨厌使用终端的人的建议!如果你想要一个像样的前端客户端,请尝试Syntevo的SmartGit。一旦我找到了它,我很快就爱上了Git。

我还建议阅读larsmans提到的Pro Git电子书。


1
理解Git的简单性很难。如果您有其他(集中式)版本控制系统的经验,请试着忘记它们,并理解Git的基本概念(对象、提交、分支等)。有很多书籍可供参考。我推荐短小精悍(30页)的Git从底层开始,它是免费的,非常有用。另外一些免费的学习资料在gitcasts上。Pragprogpeepcode也有很棒的书籍和视频课程。虽然它们不是免费的,但非常有用。
我已经使用XCode和Git合作了几个月。虽然XCode没有将Git列为支持的版本控制系统,但您可以从命令行中使用Git。我尝试过使用GitX,但从未发现比从命令行中使用Git更有用。试试看,也许它更适合您的习惯。
对于XCode,我发现这个gitignoregitattributes文件对我的项目非常有用:
# xcode noise
build/*
*.pbxuser
*.mode1v3
*.mode2v3
*.perspective
*.perspectivev3

# osx noise
.DS_Store
profile

# other
.svn
*.swp

.gitattributes: *.pbxproj -crlf -diff -merge

.gitattributes文件:*.pbxproj -crlf -diff -merge


不要将.pbxproj标记为-diff-merge。pbxproj文件格式被设计成可以合理地进行差异比较和合并。当多个人向同一构建阶段或组添加文件时,只需适当解决这些冲突即可。 - Chris Hanson

0
我发现Git Book是一个非常有帮助的资源。它用简单的语言解释了基础知识,并没有试图通过深入技术原理来复杂化事情。至少这是我从中得到的。

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