GitHub介绍及使用

1. git是什么?

Git是由Linus Torvalds最先创建开发的代码管理工具。它具有速度快,开源,分布式管理的特点。不同于其他的代码管理工具(如SVNClearCase等),它是利用快照snapshot,而不是changesets的机制来管理代码。

2. 客户端的安装和配置

1) windows下安装bash git 客户端Git-1.6.5.1-preview20091022.exe

2) git bashconsole中配置git

3) 配置 username 

git config --global user.name "xuhansheng"

4) 配置 email

git config --global user.email  [email protected]

5) 生成SSH public key,用于在github服务端注册。每台客户端key只需要生成一次,然后备份起来起来即可。

cd ~/.ssh

ssh-keygen -t rsa -C "[email protected]"//上述step 4配置的email,一路回车

打开C:\Documents and Settings\Administrator\.ssh\id_rsa.pub,里面的内容就是SSH public key

3. 服务端配置

1) 申请帐号

http://github.com/plans,免费帐号服务端有300M的磁盘空间

2) 在服务端创建项目名,本文档以StompTest为例。

3) https://github.com/accountSSH public key中增加客户端生成的key

 

4. 客户端初始化项目(initializing a new git repo

Sample

 

mkdir StompTest

cd StompTest

git init

git add .

git commit -m 'initial commit'

git remote add origin [email protected]:xuhansheng/StompTest.git

git push origin master

 

 

5. 从服务端克隆一个存在的项目

 

 git clone [email protected]:xuhansheng/StompTest.git

注意clone后面的参数url 需要用private里面urlRead-OnlyHTTP Read-Only clone下来的代码没有修改服务端代码的权限。

 

6. 通常的使用流程

1) 从服务端同步代码

git pull origin master

2) 往服务端增加一个Readme的文件

        git add Readme

        git commit –a 

        git push origin master

3) 修改 后的文件discard

git checkout Readme

 

7. 备注

本文只是说明git的简单流程,没有涉及branchtag等方面的应用。大家可以参考git help git  git help command来寻求在线帮助。

 

8. gitHub使用

 

 

 

在github注册完后,首先创建一个仓库(repositry),在你的个人页面右边"Your Repositories"模块,点击 New repository,这里我们把project name 填写为 “test"

GitHub介绍及使用_第1张图片

除了项目的名字是必填的外,另外两个空是可选的。点击”Create repository"之后会看到下面这个页面:

GitHub介绍及使用_第2张图片

    这就是你接下来要做的事情。首先你要安装Git客户端,windows版本下载地址,安装的时候根据提示选择下一步就行,安装完后就是设置SSH Keys

 

打开安装目录,进入Git Bash控制台

GitHub介绍及使用_第3张图片

8.1、检查是否存在SSH keys,如果第一次安装是没有的,输入命令(这里的命令输入方式基本和在linux下面是一样的),如果存在key了,可以直接跳到第4步。(下面的$符号是作为命令行的开始,不需要手动输入)

注意:在linux的用户目录可能没有.ssh目录,需要自己创建

 

 

  
$ cd ~/.ssh 
 

 

 
 

 

 如果显示 “No such file or directory "那么直接到第3步,否则执行第2步(这里的意思是说,若果没有.ssh目录,我们就要去创建一个,如果存在的话,我们就备份已经存在的)

 

 

8.2、备份、移除以存在的SSH keys

 

 

$ ls
$ mkdir key_backup 
$ cp id_rsa* key_backup 
$ rm id_rsa* 
 

 (把id_rsa*开头的文件备份到key_backup)文件中去,在把这些文件从当前目录移除

 

 

8.3、生成新的SSH Key

 

$ ssh-keygen -t rsa -C "[email protected]"

 
 

注:如果提示错误Could not create directory '//.ssh',需要设置环境变量“home"--->"你的home目录",我这里是这样设置的  home----->users/cloudview,出现这个错误我很奇怪,不知是否安装了其他软件导致系统环境变量发生改变还是其他原因,待查?

 (上面的email是你注册时的email地址,注意双引号不能省略,提示要输入文件名来保存key是,默认按回车就行,采用系统默认的保存方式即可,接下来回提示输入一个叫”passphrases"的东西,可以简单的理解为本地机器与github通信时的凭证,相当于密码,但是比密码更复杂,也更安全,这个要记住,以后要用的)

 

最后你将看到(fingerprint)一串16进制的数字,同时在当前路径的.ssh目下面生成id_rsa.pub文件。说明key已经生成了

 

8.4、把刚刚生成的key添加到GitHub中去

 

在GitHub站点点击  Account Setting > SSH keys >Add SSH key,不清楚的可以看下图

GitHub介绍及使用_第4张图片

用编辑器(notepad++,vim)打开id_rsa.pub文件,选取所有内容拷贝到key的输入框里。这样key就添加成功了。

 

GitHub介绍及使用_第5张图片

此时里成功已经不远了,就差一步测试了。输入如下命令

 

 
$ ssh -T [email protected] 

 

 

 会提示是否继续连接,yes后,你将看到如下信息,说明应经大功告成了

 

 写道
Hi "username"! You're successfully authentiated,but GitHub does not provide shell access

 

 

别急,虽然可以连接成功了,但还不知道怎么上传文件到GitHub去呢,接下来就来试一试。

 

8.5、上传文件到GitHub

首先设置好个人信息,用于在提交代码是说明是谁提交的,然后还可以用email去联系他。

 

$ git config --global user.name "Firstname Lastname" 
$ git config --global user.email "[email protected]" 

 

 

上面的名字通常是你的真实姓名。

 

接下来执行以下命令

 

mkdir test 
cd test 
git init 
touch README 
git add README 
git commit -m 'first commit' 
git remote add origin [email protected]:lzjun/test.git 
git push -u origin master 
 

 大概意思就是在本地创建test目录,初始化,创建一个README文件,当然这个文件时空的,你可以往里面填内容。接下来就是add就是把README文件纳入到git的管理范围内,

 

commit:相当于把你项目的代码,文件及所有的东西做一个快照,(好比我们拍照),这所有的文件定格在这个时刻,之后的每一次commit也只把那些发生了改变的文件做快照。此时还并没有把代码提交到GitHub上去

 

remote:和GitHub建立远程连接,注意这里的"lzjun"就是我的账户名,这根据自己的名称做相应的改变。这一步只在你第一次提交文件的时候出现,并且要输入之前的pressphrases.

 

push:就很好理解了,把文件推送到GitHub站点去。

 

赶紧打开GitHub站点看看,你的test仓库里是否多了个README文件。

 

8.6、如果Fork别人的项目

如果想下载名为username用户的项目,我们需要使用clone命令,假设项目名叫“tools"

 
 

 

git clone [email protected]:username/tools.git 

 

 

 

参考源:

http://learn.github.com/

http://help.github.com/

http://liuzhijun.iteye.com/blog/1457207

你可能感兴趣的:(github)