GitHub(网址
https://github.com/)是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。
GitHub的注册用户已经超过百万,托管的版本库数量已超三百万,其中不乏知名的开源项目,如:Ruby on Rails、Hibernate、phpBB、jQuery、Prototype、Homebrew等。
GitHub于2008年4月10日正式发布,相比始于1999年的SourceForge和2005年的GoogleCode,GitHub后来者居上。以2011年的数据从代码提交数量上看,GitHub已经超越其前辈,如图1所示。
1 创建github帐号及环境配置
到https://github.com/创建用户帐号,这个大家都会。创建完进入后界面如下:
在右上角依次有用户名(我的是xiahouzuoxin)、create a new rope图标、Account Settings图标、Sign Out图标。
点击Account Settings图标进入用户设置界面(如下图),我们这里只讨论如何设置SSH
Keys,其它的都是些信息,自己设置。
在设置SSH Keys之前,先运行下面的命令试试,
$ ssh -T git@github.com
Permission denied (publickey).
显示登录失败。这是因为没有设置公钥(publickey)的缘故,这也是为什么要对SSH Keys设置的原因。
下面为设置步骤:
(1)生成公钥和私钥
$ ssh-keygen -C "xiahouzuoxin@163.com" -f ~/.ssh/gotgithub
xiahouzuoxin@163.com为你的邮箱,gotgithub为私钥文件名,对应的公钥文件名为gotgithub.pub,这个文件名可以自己命名,这连个密钥文件都保存在~/.ssh/目录下。
(2)配置config
当生成的公钥/私钥对不在缺省位置(~/.ssh/id_rsa等)时,使用ssh命令连接远程主机时需要使用参数-i<filename>指定公钥/私钥对。或者在配置文件~/.ssh/config中针对相应主机进行设定。例如对于上例创建了非缺省公钥/私钥对~/.ssh/gotgithub,可以在~/.ssh/config配置文件中写入如下配置。
Host github.com
User git
Hostname github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gotgithub
(3)在github网站的账户设置的SSH
Keys选项卡中新建SSH Key (Add SSH Key)
Title中随便填入一个名字。
进入~/.ssh/目录,打开公钥文件gotgithub.pub,将其中的内容拷贝到Key框中。注意,拷贝时切莫在其中插入多余的换行符、空格等,否则在公钥认证过程因为服务器端和客户端公钥不匹配而导致认证失败。
(4)验证是否配置成功,
$ ssh -T git@github.com
若出现类似
Hi xiahouzuoxin! You've successfully authenticated, but GitHub does not provide shell access.
的提示,说明密钥配置成功。
(5)设置用户信息
$ git config --global user.name "xiahouzuoxin" //给自己起个用户名
$ git config --global user.email "xiahouzuoxin@163.com"//填写自己的邮箱
注:github仓库对应多种地址,一个是通过http访问的地址,一个是通过ssh访问的地址。举例,
HTTP格式地址为:https://github.com/xiahouzuoxin/mp3-edcode.git
SSH格式地址为:git@github.com:xiahouzuoxin/mp3-edcode.git
通过http地址访问时可以不用配置公钥(PublicKey),但每次访问时都需要输入github的用户名和密码。
2
初次使用——创建一个项目
用户登录后系统,在github首页,点击页面右下角“NewRepository”
填写项目信息:
projectname: zx-libsvm
description:myfirstproject
点击“CreateRepository”;现在完成了一个项目在github上的创建。
说明:我们创建的是一个github仓库,一个仓库里只能存放(或叫对应)一个项目。
如果是从头创建版本库,可以采用先克隆,建立提交数据,最后再通过推送完成GitHub版本库的初始化。步骤如下:
-
克隆版本库。
$ git clone git@github.com:xiahouzuoxin/zx-libsvm.git
克隆过程会显示警告,不过这个警告可以忽略,因为GitHub创建的版本库本来就是一个空白的版本库。克隆地址在项目页面右下角可以看到,选中SSH URL方式,如下图右下角。
-
创建文件README.md。
READNE文字采用Markdown格式,您也可以使用其他支持的格式,只要确保README文件使用正确的扩展名。本书附录部分介绍了Markdown及其他GitHub支持的标记语言。关于Markdown,目前我们只需知道这一个易于识别和理解的纯文本格式,可以方便的转换为HTML。Markdown语法非常像我们在写邮件(纯文本)时用空行来分隔段落、用星号开启列表、用缩进表示引用内容等等。
-
添加README.md文件并提交。注意:此时是提交到本地的git库中。
$ git add README.md
$ git commit -m "README for this project."
-
向GitHub推送,完成版本库初始化。此时提交到github上。
这就完成了一个基本的git clone和源文件修改后往github上推送的功能。
3
常用命令(转自Ref[2])
假如你现在新创建了一个项目,想把它提交到github上面?
假设你创建好了一个项目,并切换到项目的根目录下面:
$gitstatus //查看当前项目下所有文的状态,如果第一次,你会发现都红颜色的,因为它还没有交给git/github管理。
$gitadd.//(.)点表示当前目录下的所有内容,交给git管理,也就是提交到了git的本地仓库。
Ps:git的强大之处就是有一个本地仓库的概念,在没有网络的情况下可以先将更新的内容提交到本地仓库。
$gitcommit–m”discription ”//对你更新或修改了哪些内容做一个描述。
$gitremoteaddorigingit@github.com:xiahouzuoxin/zx-libsvm.git
// 如果你是第一次提交项目,这一句非常重要,这是你本地的当前的项目与远程的哪个仓库建立连接。
Ps:origin可以改为别人的名字,但是在你下一次push(提交)时,也要用你修改之后的名字。
$gitremote-v//查看你当前项目远程连接的是哪个仓库地址。
$gitpush-uoriginmaster//将本地的项目提交到远程仓库中。
------------------------------------------------------------
假如,你回到了家,想把公司提交的项目克隆到本地?
如果你是第一次想把github上面的项目克隆到本地或者要克隆别人的项目到地。
$gitclonegit@github.com:xiahouzuoxin/zx-libsvm.git
//在git下面切换到想存放此项目的文件目录下,运行这条命令就可以将项目克隆下来。
假如本地已经存在了这个项目,而仓库中又有一新的更新,如何把更的合并到本地的项目中?
$gitfetchorigin//取得远程更新,这里可以看做是准备要取了
$gitmergeorigin/master//把更新的内容合并到本地分支/master
-------------------------------------------
项目中删除了一些文件,如何提交?
假如远程仓库中已经存了aaa这个文件,我fetch了下来,并删除了aaa这个文件,想再push上到远程仓库中,并使远程仓库中的项目被新的修改覆盖(也就是远程仓库中的aaa也被删除)
$gitstatus//可以看到我们删除的哪些文件
$gitadd.//删除之后的文件提交git管理。
$gitrmsrc/com/hzh/hibernate/dao/aaa.java//移除我们删除的那个文件,不然git不允许我们往远程仓库提交。
Ps:如果你想删除的是某个目录(java包),这里想移除整个目录的内容。
$gitrmsrc/com/hzh/hibernate/bbb/-r//-r会把bbb/目录下的所有内容一次性移动。
------------------------------------------------------------------------
远程创建了一个新仓库,本地创建了一个新项目,如何使新的项目与仓库对应起来?
其实,这个也很简单,只是我当时对那些命令不太理解,所以比较模糊,不知如何对应。
$gitremoteaddorigingit@github.com:xiahouzuoxin/zx-libsvm.git
//还是这个命令,在你push项目之前加上这一句就OK了。
git@github.com:xiahouzuoxin/zx-libsvm.git就是你常见的新仓库的地址啊。git切换到新项目下,在push之前,加上这一句,我们创建的新仓库就与新项目建立了连接。
Refrences
[1] http://www.worldhello.net/gotgithub/index.html
[2] http://www.cnblogs.com/fnng/archive/2012/01/07/2315685.html
[3] https://help.github.com/articles/set-up-git
[4]https://code.google.com/p/msysgit/ Windows下的github客户端
分享到:
相关推荐
一:非官方,账号数据可能不通,导致上传操作可能无法正常进行(本人没试过),大家尽量不要用自己的github账号登录镜像网站。 二:有些网站不太稳定,可能会报错,如作者尝试的...
GitHub Android App源码
微信小程序demo:github博客(源代码+截图)微信小程序demo:github博客(源代码+截图)微信小程序demo:github博客(源代码+截图)微信小程序demo:github博客(源代码+截图)微信小程序demo:github博客(源代码+截图)微信...
github使用教程github使用教程github使用教程github使用教程github使用教程github使用教程github使用教程github使用教程github使用教程github使用教程github使用教程github使用教程github使用教程github使用教程...
github的详细使用及其相关介绍 包括探索github 加入github 项目托管 工作协同 付费服务等
Github使用教程.zip 身为程序员,怎么能不会使用github呢
里面包含github shell、github desktop、github
github的使用方法:本文档简介地介绍了github的使用。
github插件
GitHub 客户端,实现项目工程代码托管
github漫游指南,详细的介绍github的使用
如果Github下载较慢的话,可以使用这个文件 ,原github地址: ghttps://github.com/AlexeyAB/darknet
最新的Git与Github巨作课程,课程内容主旨分成了Git&Github极速入门与攻坚实战课程两部分,可以理解为一个是课程的详细教学篇,和一个精华缩减的集合。Git与Github教程详细介绍了Git的工作机制,Git命令行的基础学习...
Github加速 Github下载
github下载加速插件,Chrome浏览器专用,包括插件伴侣和Github_speed_1_0_8_0.crx
github 使用指南 官方中文
GitHubDesktop如何转化成中文?
没有小程序的内测资格,自然也就无法上传,只能使用git clone下来本地使用 总体来讲功能不算多,主要还是因为小程序很多的限制,使得web开发很多丰富多彩的功能无法用上,比如npm、markdowm解析之类的。 建议...
GitHub简介-AboutGitHub
利用广布海内外的大量CDN节点加速Github文件获取速度。