`
anlulu
  • 浏览: 41836 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

xcode 和git

    博客分类:
  • ios
 
阅读更多


Xcode、Git和Github是三个伟大的编程工具。本文记录一下如何在Xcode中使用Git作为源代码控制工具,以及如何将本地的Git仓库和远程Github上的仓库集成起来。

1. 如何为新建的Xcode项目使用Git

Xcode4开始,就已经将Git作为内置的源代码控制(Source Control)工具了,所以为新建的项目使用git来管理是很方便的。

在新建项目向导中,可以直接选择Git作为源代码控制工具,完成项目新建向导后,就在本地项目目下新建了一个仓库。

2. 如何为已经存在的项目使用Git

如果已经存在了一个Project,想要为它使用Git,可以利用Git的命令行来操作。

假设该项目的根目录是: ~/Documents/Projects/ProjectA

(1) 在终端中先进入该目录:

cd ~/Documents/Projects/ProjectA

(2) 在该目录初始化Git仓库:

git init

 

(3) 注意,这时一定不要着急将目录下的所有文件都添加进来,先手工设置一些针对Mac OS X上的无用文件的排除(exclude),在项目根目录(ProjectA)下新建.gitignore文件,在该文件中添加如下排除规则:

# 排除build目录
build/*
 
# Exclude temp nibs and swap files
# 排除nib临时文件和交换文件
*~.nib
*.swp
 
# 排除OS X的文件夹显示属性目录
.DS_Store
 
# 排除xcode3 xcode4的用户自定义设置文件
*.mode1
*.mode1v3
*.mode2v3
*.perspective
*.perspectivev3
*.pbxuser
xcuserdata

上面的规则只是大多数开发者都不需要进行版本控制的文件,还可以根据实际需要添加其它排除规则. 关于.gitignore更多的信息可以google之

(4) 向git仓库中添加源文件

继续在终端命令行中,进入ProjectA下,

git add .
git commit -m "Initial commit"

然后重启Xcode,就可以在Orgnizer视图中的“Repositories”选项卡界面下看到ProjectA的仓库了,并且已经完成了源代码的初次提交。此后,就可以进行源代码在本地仓库的版本控制了。

3. 如何将Xcode的本地Git仓库与Github的远程仓库集成?

Github的理念源自于Git,但是与Git相比已经有了一些异化的功能特性(比如Pull Request),所以二者并非完全一致的。但是从版本控制方面来说,差别不大。所以利用Xcode内置的Git管理功能即可与Github连接,而无需额外安装Github客户端。

Github的仓库地址有两种方式:

一种是SSH连接方式,形式为:git@github.com:Hao-Wu/ProjecA.git

一种是HTTP形式,形式为:https://github.com/Hao-Wu/ProjectA.git

这两种仓库地址使用的认证方式也不一样。对于SSH连接,使用非对称公钥认证方法;对于HTTP连接,使用帐号密码认证方式。

3.1 使用SSH方式

# 检查本机是否已经存在ssh公钥
$ cd ~/.ssh

如果以前已经生成过ssh密钥对,那么就存在这个.ssh目录,目录下有id_rsa.pub公钥文件。如果还记得这个密钥对生成的细节(比如passphrase),就可以直接拿来用;否则就再多花费半分钟时间,生成新的密钥对(记得先备份旧的密钥文件,说不定其它什么项目或程序在使用):

#创建新的SSH密钥对
$ ssh-keygen -t rsa -C "your_email@example.com"

Enter passphrase (empty for no passphrase): [输入密码]
Enter same passphrase again: [再次输入密码]

到这里,SSH密钥对就生成了,接下来将id_rsa.pub文件用文本编辑器打开,将其中的全部字符串拷贝,并粘贴到web版的github.com中SSH公钥设置内。这样Xcode就可以利用SSH认证与github连接。先测试一下:

$ ssh -T git@github.com

本机就会向github发出一个连接请求,随后Mac OS会弹出一些安全认证和请求获取授权的提示框,要选择允许。如果github的服务器返回:

Hi username! You've successfully authenticated, but GitHub does not provide shell access.

这就说明本地的git已经能够成功与github服务器通信了。(不用担心上面的访问被拒绝的提示)。在确定能够与github服务器连接后,即可为ProjectA的本地git仓库添加远程地址:

依次点击,  Orgnizer –> Repositories –> ProjectA –> Remotes –> Add Remote

输入ProjectA在github上的地址(如果没有就先在github.com的仓库管理页面新建一个名为ProjectA的仓库):git@github.com:Hao-Wu/ProjecA.git

Username与Password不用输入,关闭Orgnizer视图。在File –> Source Control中即可将本地仓库的代码Push到github上了。

3.2 使用HTTP方式

使用http认证方式省去了生成SSH证书的步骤,但是在每次提交时都需要输入github的帐号和密码。

类似地,依次点击 Orgnizer –> Repositories –> ProjectA –> Remotes –> Add Remote

输入ProjectA在github的http形式的地址:https://github.com/Hao-Wu/ProjectA.git

在UserName和Pasword中分别输入github网站登录的用户名和密码 (用户名不是邮箱形式)。关闭Orgnizer视图,File –> Source Control –> Push, 即可向github中push本地仓库的代码。这个过程可能需要重新输入一遍github的用户名和密码。

 

 

分享到:
评论

相关推荐

    Xcode插件GitDiff.zip

    GitDiff 显示 git 仓库和 XCode 源代码编辑器保存的代码文件的不同之处,复制仓库的内容到你的机器上,构建和重启 XCode。修改过的地方会用橙色标记,蓝色代表新加入的代码。删除的代码使用红色标记。 ...

    IOS开发Git在Xcode开发环境下的使用

    从零来讲如何在xcode下,来配置git

    gitTest:为xcode测试git

    gitTest 为xcode测试git

    GitDiff:突出显示Xcode中针对git repo的增量

    GitDiff9-Xcode 9的GitDiff 由于此插件已被“ Sherlocked”,因此不再受支持,仅在Xcode 11中有效。您需要先保存文件,然后才能突出显示高光。 现在,源代码编辑器已在Swift中实现,“ GitDiff” Xcode插件已连接...

    显示git增量的Xcode插件

    这个源码是显示git增量的Xcode插件,源码GitDiff,GitDiff是一个Xcode插件,如果你的工程使用Git做版本控制,它能提示你的代码的改变。 测试环境: Xcode 6.0 安装: 下载代码,运行工程,重启Xcode

    xcode-git-cfbundleversion:使用短的 Git 修订字符串更新 Info.plist 文件中的 CFBundleVersion

    xcode-git-cfbundleversion.rb 使用短的 Git 修订字符串更新 Info.plist 文件中的 CFBundleVersion如何使用右键单击要添加版本控制阶段的目标(通常是构建应用程序的目标) 选择:添加 -> 新建构建阶段 -> 新建运行...

    理解XCode中的Git版本控制(一)

    这些是必须包含的功能,存储和处理工作代码版本在不同阶段稳定阶段的副本,并能够恢复代码当存在缺陷或者产生问题的时候。更有甚者,当多个程序员工作在同一个项目时,跟踪所有的变更是一个单向的路径。幸运的是,...

    在Xcode中使用Git进行源码版本控制

    事实上,这种做法再团队和软件公司中相当常见:每个人负责项目的一部分,最终所有部分被整合到一起形成最终产品。对于个人开发者来说,版本控制系统并不是必需的,但是我们仍然强烈推荐开发者使用它,因为它可以使...

    理解XCode中的Git版本控制(二)

    在你提交了多个版本之后,对比各个版本、跟踪代码的变化是非常容易的。当新添的代码不能如预期工作时,版本对比显得尤为重要,因为你需要找到从上个稳定版本以来的所有变化。...最开始,左、右栏都显示当前版本的文件。...

    iOS-Development:iOS 框架、文章、电子书等列表

    #iOS-开发 面向开发人员的 iOS 框架、文章、电子书等列表。 使用生成的目录 存储库 系统 Swift 工具 Xcode 包管理器 ... Xcode 和 git:弥合差距 CocoaPods 库 数据处理 NSDate-TKExtensions - NSDa

    Git权威指南PDF完整版

    第3篇 Git和声 第15章 Git协议与工作协同/ 200 15.1 Git 支持的协议/ 200 15.2 多用户协同的本地模拟/ 202 15.3 强制非快进式推送/ 203 15.4 合并后推送/ 207 15.5 禁止非快进式推送/ 208 第16章 冲突解决/ 210 16.1...

    carthage-talk:带有迦太基的残酷简单的依赖管理

    迦太基的工作方式是将任务委派给Xcode和Git,并尽可能减少新概念,因此您可以继续使用已经熟悉的工具。 本讲座将解释什么是迦太基以及如何使用它,然后深入探讨激发该项目的残酷简单哲学。 我们还将比较迦太基和的...

    Xcode模拟器下载地址(iOS 8 - iOS 12)

    Xcode 模拟器手动下载地址,内容只包含从iOS 8 - iOS 12 之间的各个小版本。

    solarized-xcode:Xcode的Solarized Light&Dark主题

    Xcode的日光灯和暗灯主题 -享受世界上最受欢迎的Xcode编程主题 安装 经过测试可在Xcode 12+上运行 ...git clone git@github.com:stackia/solarized-xcode.git && solarized-xcode/install.sh 也可以看看

    Git可视化工具SourceTree的使用

    我在前面几篇文章中详细介绍了Git命令行的使用《Git学习札记》《Git学习札记——进阶》,以及使用Xcode中自带的Git可视化工具的使用《Xcode中git的使用方法介绍与"Please tellmewhoyouare"问题的解决方案》。对于Git...

    Git、github与Xcode的配合使用

    1. Git 的使用...................................................................................................................................... 1 1.1. 配置用户信息 ...................................

    macOS Mojave Xcode命令行工具

    升级macOS Mojave(10.14)之后,git就用不了了,一直提示: xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/...

    algorithm-Swift::exploding_head:Swift算法研究

    快速算法 :exploding_head: Swift算法研究Xcode和Git存储库

Global site tag (gtag.js) - Google Analytics