XCODE上传代码至github

简介:

几乎所有iOS程序员都上过GitHub寻找开源类库,的确,GitHub上有大量优秀的开源类库供大家学习。但是如何在Xcode中上传代码至GitHub呢?

开始之前先安装git

从源代码安装

若是条件允许,从源代码安装有很多好处,至少可以安装最新的版本。Git 的每个版本都在不断尝试改进用户体验,所以能通过源代码自己编译安装最新版本就再好不过了。有些 Linux 版本自带的安装包更新起来并不及时,所以除非你在用最新的 distro 或者 backports,那么从源代码安装其实该算是最佳选择。

Git 的工作需要调用 curl,zlib,openssl,expat,libiconv 等库的代码,所以需要先安装这些依赖工具。在有 yum 的系统上(比如 Fedora)或者有 apt-get 的系统上(比如 Debian 体系),可以用下面的命令安装:


$ yum install curl-devel expat-devel gettext-devel \     openssl-devel zlib-devel     $ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \     libz-dev libssl-dev


之后,从下面的 Git 官方站点下载最新版本源代码:


http://git-scm.com/download


然后编译并安装:


$ tar -zxf git-1.7.2.2.tar.gz     $ cd git-1.7.2.2     $ make prefix=/usr/local all     $ sudo make prefix=/usr/local install


现在已经可以用 git 命令了,用 git 把 Git 项目仓库克隆到本地,以便日后随时更新:


$ git clone git://git.kernel.org/pub/scm/git/git.git


在 Mac 上安装

在 Mac 上安装 Git 有两种方式。最容易的当属使用图形化的 Git 安装工具,界面如图 1-7,下载地址在:


http://code.google.com/p/git-osx-installer


【iOS开发】XCODE上传代码至github(转)

图 1-7. Git OS X 安装工具

另一种是通过 MacPorts (http://www.macports.org) 安装。如果已经装好了 MacPorts,用下面的命令安装 Git:


$ sudo port install git-core +svn +doc +bash_completion +gitweb


这种方式就不需要再自己安装依赖库了,Macports 会帮你搞定这些麻烦事。一般上面列出的安装选项已经够用,要是你想用 Git 连接 Subversion 的代码仓库,还可以加上 +svn 选项,具体将在第八章作介绍。(译注:还有一种是使用 homebrew(https://github.com/mxcl/homebrew):brew install git。)

开始

首先我们新建一个工程,记得要勾选Create git repository on:

【iOS开发】XCODE上传代码至github(转)

这说明使用Source Control,会默认在工程中创建git repository。然后工程新建完成后,会在右侧边栏看到这些信息,说明已经启用Source Control

【iOS开发】XCODE上传代码至github(转)

如果没有使用Source Control,则是这样的:

【iOS开发】XCODE上传代码至github(转)

现在我们已经在工程中启用了Source Control,这样就可以使用git来管理工程版本了

但是如果我们想对一个未启用git的工程加入git的功能怎么做呢?我们可以使用命令行来开启此功能,新建一个工程,不勾选Create git repository on,此时我们没有开启Source Control,然后我们手动创建git管理,如下图所示:


YiBantekiiMac-3:UseGit YiBan$ cd /Users/YiBan/Documents/iOS_Dev/ManualGitDemo YiBantekiiMac-3:ManualGitDemo YiBan$ git init Initialized empty Git repository in /Users/YiBan/Documents/iOS_Dev/ManualGitDemo/.git/


使用


git init


来初始化一个空的git仓库,现在使用ls-la命令查看目录下的所有文件(包含隐藏文件)


total 16
drwxr-xr-x   7 YiBan  staff   238  5 12 16:10 . drwxr-xr-x  52 YiBan  staff  1768  5 12 16:06 ..-rw-r--r--@  1 YiBan  staff  6148  5 12 16:10 .DS_Store drwxr-xr-x   9 YiBan  staff   306  5 12 16:06 .git drwxr-xr-x  12 YiBan  staff   408  5 12 16:06 ManualGitDemo drwxr-xr-x   5 YiBan  staff   170  5 12 16:06 ManualGitDemo.xcodeproj drwxr-xr-x   5 YiBan  staff   170  5 12 16:06 ManualGitDemoTests


此时我们看到除了三个文件之外还有两个隐藏文件,.DS_Store和.git,.DS_Store是由OS X生成的文件,包含了文件夹中的位置属性,.git则是启用了Source Control自动生成的目录,然后使用git status查看当前状态:


YiBantekiiMac-3:ManualGitDemo YiBan$ git status On branch master Initial commit Untracked files:   (use "git add ..." to include in what will be committed)     .DS_Store     ManualGitDemo.xcodeproj/     ManualGitDemo/     ManualGitDemoTests/nothing added to commit but untracked files present (use "git add" to track)


说明初始化成功了,显示出了未被追踪的文件。不过我们并不希望把.DS_Store也加入的git中,因为那文件对我们没有任何用处,我们可以忽略它,具体做法是:新建一个文件,命名为.gitignore,然后使用文本编辑器输入以下信息:


# Xcode .DS_Store */build/* *.pbxuser  !default.pbxuser  *.mode1v3 !default.mode1v3  *.mode2v3  !default.mode2v3  *.perspectivev3 !default.perspectivev3  xcuserdata profile  *.moved-aside  DerivedData .idea/ *.hmap


保存至工程文件夹中,这样我们目录中就多出一个.gitignore文件了,这时我们再用git status命令查看当前状态:


YiBantekiiMac-3:ManualGitDemo YiBan$ git status On branch master Initial commit Untracked files:   (use "git add ..." to include in what will be committed)     .gitignore     ManualGitDemo.xcodeproj/     ManualGitDemo/     ManualGitDemoTests/ nothing added to commit but untracked files present (use "git add" to track)


这里看到已经没有.DS_Store了,说明.gitignore已经把.DS_Store忽略了。现在可以提交了,使用


git add .


此命令先将文件添加至暂存区域,但还没有提交,查看下状态:


YiBantekiiMac-3:ManualGitDemo YiBan$ git status On branch master Initial commit Changes to be committed:   (use "git rm --cached ..." to unstage)     new file:   .gitignore     new file:   ManualGitDemo.xcodeproj/project.pbxproj     new file:   ManualGitDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata     new file:   ManualGitDemo/AppDelegate.h     new file:   ManualGitDemo/AppDelegate.m     new file:   ManualGitDemo/Base.lproj/Main.storyboard     new file:   ManualGitDemo/Images.xcassets/AppIcon.appiconset/Contents.json     new file:   ManualGitDemo/Images.xcassets/LaunchImage.launchimage/Contents.json     new file:   ManualGitDemo/ManualGitDemo-Info.plist     new file:   ManualGitDemo/ManualGitDemo-Prefix.pch     new file:   ManualGitDemo/ViewController.h     new file:   ManualGitDemo/ViewController.m     new file:   ManualGitDemo/en.lproj/InfoPlist.strings     new file:   ManualGitDemo/main.m     new file:   ManualGitDemoTests/ManualGitDemoTests-Info.plist     new file:   ManualGitDemoTests/ManualGitDemoTests.m     new file:   ManualGitDemoTests/en.lproj/InfoPlist.strings


现在进行提交,使用git commit -m "Initail"命令,引号内的内容是提交的注释,随便写什么都可以:


YiBantekiiMac-3:ManualGitDemo YiBan$ git commit -m "Initial"[master (root-commit) 83bbefc] Initial 17 files changed, 803 insertions(+)  create mode 100644 .gitignore  create mode 100644 ManualGitDemo.xcodeproj/project.pbxproj  create mode 100644 ManualGitDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata  create mode 100644 ManualGitDemo/AppDelegate.h  create mode 100644 ManualGitDemo/AppDelegate.m  create mode 100644 ManualGitDemo/Base.lproj/Main.storyboard  create mode 100644 ManualGitDemo/Images.xcassets/AppIcon.appiconset/Contents.json  create mode 100644 ManualGitDemo/Images.xcassets/LaunchImage.launchimage/Contents.json  create mode 100644 ManualGitDemo/ManualGitDemo-Info.plist  create mode 100644 ManualGitDemo/ManualGitDemo-Prefix.pch  create mode 100644 ManualGitDemo/ViewController.h  create mode 100644 ManualGitDemo/ViewController.m  create mode 100644 ManualGitDemo/en.lproj/InfoPlist.strings  create mode 100644 ManualGitDemo/main.m  create mode 100644 ManualGitDemoTests/ManualGitDemoTests-Info.plist  create mode 100644 ManualGitDemoTests/ManualGitDemoTests.m  create mode 100644 ManualGitDemoTests/en.lproj/InfoPlist.strings


再查看下状态:


YiBantekiiMac-3:ManualGitDemo YiBan$ git status On branch master nothing to commit, working directory clean


好了,当前工作区是干净的,代码都已经提交完毕了。我们可以用Xcode提交代码,也可以用命令来提交,但是用命令行的话可以做的事情更多一些。使用Xcode可以查看提交的历史纪录,Source Control->History:

【iOS开发】XCODE上传代码至github(转)

添加工程至GitHub

首先必须有GitHub的帐号,没有的话去注册一个,并且还要创建SSH,GitHub使用了公私密钥,确保与你的电脑通讯过程是安全的。

SSH创建过程是这样的:

1. 在命令行输入cd ~/.ssh,然后ls,看看此文件夹下有哪些文件,如果有id_rsa.pub或者id_dsa.pub(名字可能会不同),说明你已经有SSH keys了,你可以将它添加到你的账户中

2. 如果没有的话,你讲得到"No such file or directory "这个错误信息,此时你可以通过命令生成出来:


ssh-keygen -t rsa -C "YOUR EMAIL"


在那里填写你的email地址,之后会被要求填写密码,此时的SSH keys就生成好了,有了SSH Keys后将其添加至你的GitHub账户中就可以了,在账户设置中找到SSH keys这一项,然后填写title和key,现在,你的SSH Key就和GitHub账户绑定了

前往个人主页,新建一个repository(网页右上方),会要输入一些信息:

【iOS开发】XCODE上传代码至github(转)

输入Repository name和描述,然后选创建,会看到repository的链接:

【iOS开发】XCODE上传代码至github(转)

把链接赋值下来,前往Xcode中,Source Control->第一项->Configure...,之后选Remotes:

【iOS开发】XCODE上传代码至github(转)

Add Remote中,输入Name(你工程的名字)和Address(之前的链接地址),然后Source Control->Push,选择刚刚新建的链接,Push~

现在刷新下GitHub主页,你的工程已经添加成功了~!










本文转自 卓行天下  51CTO博客,原文链接:http://blog.51cto.com/9951038/1772567,如需转载请自行联系原作者
目录
相关文章
|
7月前
github克隆代码加速
github克隆代码加速
150 2
|
8月前
|
机器学习/深度学习 算法 程序员
GitHub:代码世界的来世今生
GitHub:代码世界的来世今生
73 1
|
8月前
|
人工智能 运维 Linux
一文了解IntelliJ IDEA如何使用git上传代码到GitHub(附常见问题解决方案)
一文了解IntelliJ IDEA如何使用git上传代码到GitHub(附常见问题解决方案)
458 0
|
28天前
|
Devops Shell 网络安全
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
|
3月前
|
开发工具 git Python
代码管理记录(二):Github代码上传实操
本文是关于如何使用Git将本地代码上传到GitHub的实操指南。介绍了Git的基本概念、安装方法,并通过详细的步骤指导用户从GitHub创建仓库到使用Git命令初始化、添加、提交代码,最终将代码推送到远程仓库。同时,还汇总了一些常见的错误及其解决方法。
113 2
代码管理记录(二):Github代码上传实操
|
5月前
|
存储 安全 API
GitHub主要仓库泄露访问令牌,代码与云环境面临风险
GitHub主要仓库泄露访问令牌,代码与云环境面临风险
GitHub主要仓库泄露访问令牌,代码与云环境面临风险
|
5月前
|
安全 网络协议 Shell
Github代码仓库SSH配置流程
这篇文章是关于如何配置SSH以安全地连接到GitHub代码仓库的详细指南,包括使用一键脚本简化配置过程、生成SSH密钥对、添加密钥到SSH代理、将公钥添加到GitHub账户以及测试SSH连接的步骤。
132 0
Github代码仓库SSH配置流程
怎样在GitHub上建立仓库、以及怎样实现分支代码的合并。保姆级别的教程
这篇文章是一份详细的GitHub使用教程,介绍了如何在GitHub上创建仓库、创建分支、编辑和发布更改内容、发起拉取请求以及合并分支的操作步骤。
怎样在GitHub上建立仓库、以及怎样实现分支代码的合并。保姆级别的教程
|
5月前
|
敏捷开发 测试技术 持续交付
阿里云云效产品使用合集之从GitHub下载代码失败是什么原因
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
7月前
|
Shell 测试技术 网络安全
【GIT】如何在GitHub上向一个开源项目贡献代码?
【GIT】如何在GitHub上向一个开源项目贡献代码?
92 5

热门文章

最新文章