IOS开发-GitHub使用详解

摘要:
或者如果你对GitHub感兴趣,你可以通过Watch或Star关注它,然后你可以在GitHub主页上看到项目动态:Fork拥有代码后,你可以将代码通过gitclone复制到本地:然后有一个名为MRF的本地目录,其中包含一个README文件,如下所示:如上所述,Fork的项目不会用原始项目更新
1、GitHub是什么?

GitHub这个名词既可以是那个流行的代码分享和协作网站 https://github.com/,也可以是指Git客户端工具(与其他的Git客户端工具如GitEye类似,只不过Git仓库托管在GitHub服务器上)。下图即GitHub客户端截图,我已经在GitHub上建立了两个Git仓库(Git仓库地址类似https://github.com/jxqlovejava/MRF.git,以.git结尾),下文所有图片都可以点击看大图(虽然是在Mac系统上操作,使用Windows系统命令行操作也是类似的,之所以采用截图方式是希望大家自己手动敲一遍命令而不是直接拷贝):

GitHub使用详解

为什么使用GitHub?个人认为有几大原因:

  • Git是一个分布式版本控制系统,相对于传统的集中式版本控制系统如SVN拥有不可替代的优势,详细参考 Pro Git中文版
  • GitHub作为一个全球性质的代码分享和协作编辑网站,拥有强大的社区,并提供了功能强大简洁的GitHub客户端(Windows/Linux/Mac三种版本)
  • 几乎所有的开源项目都能在GitHub上找到
  • GitHub提供了方便的“代码社交”支持,如协作编辑、Fork、Follow等
2、安装并设置Git和GitHub

首先当然是下载安装Git,下载地址请移步:http://git-scm.com/downloads

然后下载 GitHub客户端,输入用户名密码(你的GitHub用户名和密码,如果没有GitHub账号请先注册一个)后,出现一个设置窗口,点击Advanced选项卡,在Advanced选项卡面板下部有一个Install Git and Github Command(记得大概是这个),也可以点击这个按钮然后自动安装Git和GitHub命令行工具,我安装在了/usr/local/bin目录下:

GitHub使用详解

然后我们可以给git和github设置别名或者export设置路径,这样之后就可以在任意目录下直接执行git和github命令了:

1
2
aliasgit='/usr/local/bin/git'
aliasgithub='/usr/local/bin/github'

Git的常用命令如下图:

GitHub使用详解

接下来需要设置默认的git用户名和git邮箱(github注册邮箱),这样设置之后的好处是之后commit本地文件到远程Git服务器时不再需要每次都输入用户名:

GitHub使用详解

更进一步,如果连密码都不想每次都输入,该怎么做?可以用credential-osxkeychain这个工具(应该是Mac上才有的,如果非Mac系统请忽略这一小部分内容):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 测试是否已安装credential-osxkeychain
$ git credential-osxkeychain
 
# 如果已安装,上面会输出Usage: git credential-osxkeychain <get|store|erase>
# 如果未安装,则先用CURL下载git-credential-osxkeychain
$ curl -s -O
  https://github-media-downloads.s3.amazonaws.com/osx/git-credential-osxkeychain
 
# 设置下载的git-credentail-osxkeychain文件权限
chmodu+x git-credential-osxkeychain
 
# 将git-credential-osxkeychain移动到git命令行工具所在目录,我的是/usr/local/bin
sudomvgit-credential-osxkeychain /usr/local/bin
# 确认下
cd/usr/local/binls
 
# 设置git的credential helper为git-credentail-osxkeychain
$ git config --global credential.helper osxkeychain

经过上面的设置之后,下次只要第一次输入用户名密码后,用户名密码就会被保存在keychain中,后面commit时就再也不需要输用户名密码了。

3、创建并设置Git仓库

在GitHub首页的右上角有一个加号符号,点击它就可以看到下面:

GitHub使用详解

点击“New repository”就可以进入创建Git仓库(这个是托管在GitHub服务器上的远程Git库)页面了:

GitHub使用详解

填好必要的信息之后,点“Create repository”按钮就创建好了一个Git仓库,当然也可以通过GitHub客户端方便地创建Git仓库,不再赘述。创建好的Git仓库路径类似这种:https://github.com/jxqlovejava/MyFramework.git (记住这个,下面会用到)

MRF.git就是Git仓库,它下面可以包含我们的项目文件夹或者其他文件(如说明文件、.gitigonore文件):

MRF.git

|--- MRF

|--- README

|--- ...

下面我们先在本地创建一个项目,并为它绑定一个本地Git仓库,最后git push命令将本地Git仓库提交到远程Git服务器上,第一步创建本地Git库:

GitHub使用详解

然后通过touch和vim命令创建并编辑一个README文件,编辑后按Esc,然后输入w!保存,再输入:q返回

GitHub使用详解

继续通过git add将README设置为staged状态(等待提交),通过git commit提交修改,使得README状态由staged状态变为commited:

GitHub使用详解

最后我们需要将本地git仓库提交到GitHub远程Git服务器上,首先添加remote仓库,并设置它的别名为origin(remote仓库默认名称),然后我们将本地master branch提交到远程Git库:

GitHub使用详解

上面通过git remote add添加了一个远程Git库并为它绑定了一个别名origin,我们可以通过git remote remove origin删除这个绑定关系。master是本地git库的主干分支,类似SVN的trunk。可以通过git status或者git branch查看当前在哪个分支:

GitHub使用详解

当然有时候我们需要新建一个主干分支以外的分支,比如下面创建一个名为myBranch的分支,然后通过git checkout切换到myBranch分支(创建和切换可以合为一个命令git checkout -b myBranch):

GitHub使用详解

在此之后我又切回master主干分支,并且通过git merge将myBranch分支合并到master主干分支,最后通过git -d删除myBranch分支:

GitHub使用详解

4、代码社交化

首先当然是GitHub上最常见的Watch、Fork和Star,前者会把其他人的GitHub托管项目Fork一份成为自己的GitHub库,注意Fork的项目不会与原始项目同步,这意味着今后原始项目再更新,Fork的项目不会随之更新。或者如果对某个GitHub感兴趣,可以通过Watch或Star进行关注,之后在GitHub首页就能看到项目动态:

GitHub使用详解

Fork了代码之后,可以通过git clone把代码拷贝到本地:

GitHub使用详解

然后本地即有了一个名为MRF的目录,其下包含一个README文件,如下:

GitHub使用详解

上面说过Fork的项目不会随着原始项目的更新而更新,那么某些时候有必要手动Pull更新,然后git merge合并到本地git库(远程git库增加了一个test.txt文件):

GitHub使用详解

upstream只是一个命名约定,即别人的远程Git库一般约定为这个别名。

以上基本涵盖了Git和GitHub的一般使用,但还没有涉及如何为其他人创建的Git项目提交代码,但对于自己创建一个GitHub项目并提交代码已经足够了。

如果使用eclipse开发项目,还有EGit和GitHub for Eclipse插件可以提供Git和GitHub功能,篇幅有限,不再多说了。

 
 
 
 
 

免责声明:文章转载自《IOS开发-GitHub使用详解》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ros自定义消息的时候报错ImportError: No module named emfiddler 配置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

idea右键没有git选项

网上很多说法,不过可能版本更新,新版本好像不管用,废话不多说,上图 点击下VCS——》Git——》commit File然后好像可以选下本地仓库的路径,好像是这样,刚刚操作完就完了,反正就这样的 然后顺便说下,关联了git后 绿色,已经加入控制暂未提交红色,未加入版本控制蓝色,加入,已提交,有改动(提交后就变回白色)白色,加入,已提交,无改动灰色:版本控...

Git服务器安装详解及安装遇到问题解决方案

git是一个不错的版本管理的工具。现在自己在搞一个简单的应用程序开发,想使用git来进行管理。在Google了配置文档后,还是受了N多的挫折。某些文档质量不高,浪费了好多时间...... 好,切入正题: 安装必要的git工具 #apt-get install git git-core centos linux 下载git # wget https://w...

Windows环境下安装配置Teamcity配合git自动发布mvc,webapi站点

以下是本人配置Teamcity具体环境和步骤,只实现了项目发布,打包。Nodejs npm gulp没有配置成功,后期补上。 1 环境安装 本人使用的是windows7 sp1 64位系统,(.net framework 4.5.2) 1.1 Teamcity 安装 下载地址:http://www.jetbrains.com/teamcity/downlo...

git 强制拉取更新,本地修改

有新人加入项目时,改动一些方法,此时并不想提交,但是需要拉取最新的代码。有些人会删除本地的项目,重新clone的项目。虽然,这样能够完成更新项目的做法; 接下来介绍更加科学的做法: git fetch --allgit reset --hard origin/mastergit pullgit fetch 指令是下载远程仓库最新内容,不做合并git res...

IOS开发NSString与int和float的相互转换以及字符串拼接、NSString、NSData、char* 类型之间的转换

一、NSString与int和float的相互转换 NSString *tempA = @"123"; NSString *tempB = @"456"; 1.字符串拼接 NSString *newString = [NSString stringWithFormat:@"%@%@",tempA,tempB]; 2.字符转intint intStr...

iOS 开发之照片框架详解之二 —— PhotoKit 详解(下)

本文链接:http://kayosite.com/ios-development-and-detail-of-photo-framework-part-three.html 这里接着前文《iOS 开发之照片框架详解之二 —— PhotoKit 详解(上)》,主要是干货环节,列举了如何基于 PhotoKit 与 AlAssetLibrary 封装出通用的方法...