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 ...
随机推荐
- WPF MultiBinding 和 IMultiValueConverter
MultiBinding,描述附加到单个绑定目标属性的Binding对象的集合.可以指定多个数值绑定. IMultiValueConverter通过转换器使用MultiBingding对象,该对象讲根 ...
- [转]Oracle 阳历转农历
CREATE TABLE SolarData ( YearID INTEGER NOT NULL, -- 农历年 DATA ) NOT NULL, -- 农历年对应的16进制数 DataInt INT ...
- 一个可序列化的C#对象,如何转成一个XML格式的文件或字符串【转】
原文:http://blog.csdn.net/otong/article/details/7894059 序列化或反序列化成一个字符串: 方法一: 序列化: public static string ...
- ubuntu开发软件的安装
今天下午发现ubuntu12.04坏了,无奈只能重新安装,建议读者配置自己的ubuntu后备份一个,免得坏了重新安装,花了两个小时才把ubuntu的交叉环境弄好,其中搭建了tptp通信协议,还有arm ...
- C#插入排序详解
这几天一直在研究算法,也算有点心得,现在跟大家分享一下,我是用C#做的 排序算法是想要成为大虾程序员必须要掌握的技术,它其实也是一种思想,你对算法熟悉,对以后编程有很大帮助 算法思路 ⒈ 从第一个元素 ...
- 精妙SQL语句 基础
精妙SQL语句SQL语句先前写的时候,很容易把一些特殊的用法忘记,我特此整理了一下SQL语句操作,方便自己写SQL时方便一点,想贴上来,一起看看,同时希望大家能共同多多提意见,也给我留一些更好的佳句, ...
- Min Edit Distance
Min Edit Distance ----两字符串之间的最小距离 PPT原稿参见Stanford:http://www.stanford.edu/class/cs124/lec/med.pdf Ti ...
- 从Count看Oracle执行计划的选择
一. 前言 在调查一个性能问题的时候,一个同事问道,为什么数据库有些时候这么不聪明,明明表上有索引,但是在执行一个简单的count的时候居然全表扫描了!难道不知道走索引更快么? 试图从最简单的coun ...
- 第二百八十一、二、三天 how can I 坚持
又是三天,真搞不懂人到底是是什么,到底想要啥,好压抑. 周五,李东勇他们来北京开年会,晚上下班,去了趟团结湖公园,好冷,快冻死了,等着他们来了,见面,感觉好亲切,晚上一块吃了个火锅,玩的很happy. ...
- Cognos 增加全局类
Cognos使用版本10.1.1 由于我服务器装的是linux系统下的,所以window系统下的方法,提一下,但是没有实现过. 1.Linux系统下增加全局类 ●修改GlobalReportStyle ...