GitHub使用详解
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?个人认为有几大原因:
- 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目录下:

然后我们可以给git和github设置别名或者export设置路径,这样之后就可以在任意目录下直接执行git和github命令了:
|
1
2
|
$ alias git='/usr/local/bin/git'$ alias github='/usr/local/bin/github' |
Git的常用命令如下图:

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

更进一步,如果连密码都不想每次都输入,该怎么做?可以用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文件权限$ chmod u+x git-credential-osxkeychain# 将git-credential-osxkeychain移动到git命令行工具所在目录,我的是/usr/local/bin$ sudo mv git-credential-osxkeychain /usr/local/bin# 确认下$ cd /usr/local/bin | ls# 设置git的credential helper为git-credentail-osxkeychain$ git config --global credential.helper osxkeychain |
经过上面的设置之后,下次只要第一次输入用户名密码后,用户名密码就会被保存在keychain中,后面commit时就再也不需要输用户名密码了。
3、创建并设置Git仓库
在GitHub首页的右上角有一个加号符号,点击它就可以看到下面:

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

填好必要的信息之后,点“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库:

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

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

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

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

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

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

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

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

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

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

upstream只是一个命名约定,即别人的远程Git库一般约定为这个别名。
以上基本涵盖了Git和GitHub的一般使用,但还没有涉及如何为其他人创建的Git项目提交代码,但对于自己创建一个GitHub项目并提交代码已经足够了。
如果使用eclipse开发项目,还有EGit和GitHub for Eclipse插件可以提供Git和GitHub功能,篇幅有限,不再多说了。
注:本文参考了GitHub首页的引导教程,更详细的Git使用请参考 Pro Git中文版
来自:http://my.oschina.net/feichexia/blog/192755
GitHub使用详解的更多相关文章
- Github .gitignore详解
在使用git作版本控制时,git会默认把git控制的文件夹里面的所有文件都加入到版本控制.但是在实践中,我们经常会遇到不想某些文件或文件夹被git追踪的情况.比如logs文件.代码构建过程中产生的一些 ...
- Github命令详解
Git bash: ***创建本地版本库: $ cd d: $ mkdir git $ cd git $ mkdir test $ git init //初始化本地库 ***创建文件并添加到版本库 ...
- 上传本地代码到gitHub过程详解
1.注册Github账号 2.创建自己的GitHub仓库 3.创建自己的Repository(项目的名字等) 4.复制创建仓库的地址到Git命令窗口并执行命令行(Git clone 仓库的复制地址) ...
- Android Studio中Git和GitHub使用详解
一.Git和GitHub简述 1.Git 分布式版本控制系统,最先使用于Linux社区,是一个开源免费的版本控制系统,功能类似于SVN和CVS.Git与其他版本管理工具最大的区别点和优点就是分布式: ...
- 使用Git将本地项目上传到Github操作详解
Git的安装就不说了. 一.建本地仓库 1.第一步:我们需要先创建一个本地的版本库(其实也就是一个文件夹). 你可以直接右击新建文件夹,也可以右击打开Git bash命令行窗口通过命令来创建. 反正就 ...
- Git连接GitHub仓库详解
[Annotation]本文将从标题八开始,因为前七个标题是关于Git的基本操作,如果对Git的基本操作不了解的话,可以点击下方链接先看一下Git怎么使用. 关于Git的详细使用 八:创建SSH Ke ...
- git/github使用详解
介绍:gitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名gitHub. 2018年6月4日,微软宣布,通过75亿美元的股票交易收购代码托管平台Gi ...
- 【iOS 使用github上传代码】详解
[iOS 使用github上传代码]详解 一.github创建新工程 二.直接添加文件 三.通过https 和 SSH 操作两种方式上传工程 3.1https 和 SSH 的区别: 3.1.1.前者可 ...
- GitHub详解(GitHub for Windows)
GitHub详解 GitHub 是一个共享虚拟主机服务,用于存放使用Git版本控制的软件代码和内容项目.它由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath ...
随机推荐
- Zend Framework 入门(4)—页面布局
Zend Framework 的页面布局模块——Zend_Layout——既可以跟 MVC 一起使用,也可以单独使用.本文只讨论与 MVC 一起使用的情况. 1. 布局脚本 在 application ...
- 云计算服务模型,第 2 部分: 平台即服务(PaaS)
英文原文:Cloud computing service models, Part 2: Platform as a Service 平台即服务 (PaaS) 常常是最容易让人迷惑的云计算类别,因为很 ...
- Delphi 利用TComm组件 Spcomm 实现串行通信
Delphi 利用TComm组件 Spcomm 实现串行通信 摘要:利用Delphi开发工业控制系统软件成为越来越多的开发人员的选择,而串口通信是这个过程中必须解决的问题之一.本文在对几种常用串口通信 ...
- HTMLayout使用心得
1.关闭按钮 采用CSS!提供的behavior实现窗口关闭功能,不需要在C++代码中处理关闭事件 div { behavior: sys-ctl; -sys-ctl-pos: c ...
- IOS UINavigationController 操作相关集合
1.修改中间Title字体以及大小 [self.navigationController.navigationBar setTitleTextAttributes:[NSDictionary dict ...
- Jemeter对Oracle数据库性能测试方法
下载Oracle的jdbc数据库驱动包,注意Oracle数据库的版本,这里使用的是:Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 ...
- document.write("\x3c\x54")?是加密了吗?
<script>document.writeln("\x3C\x73\x63\x72\x69\x70\x74\x20\x73\x72\x63\x3D\x22\x48\x54\x5 ...
- Developer Tools(开发工具)
Google提供了使用Java和Python开发App Engine的免费工具.你可以从Google的网站上下载你所用语言和操作系统的软件开发包.Java用户可以以Eclipse集成开发环境的方式获取 ...
- Hadoop在百度的应用
百度作为全球最大的中文搜索引擎公司,提供基于搜索引擎的各种产品,包括以网络搜索为主的功能性搜索:以贴吧为主的社区搜索:针对区域.行业的垂直搜索.MP3音乐搜索,以及百科等,几乎覆盖了中文网络世界中所有 ...
- CentOS上firefox安装flash
CentOS下firefox安装flash说明 CentOS下自带了firefox,但没有flash插件的,按它自己的提示安装不成功,需要手动安装,如下: 1.打开flash官网,http://lab ...