首页 > 代码库 > Github用法简介

Github用法简介

GitHub的使用已成潮流,作为一个程序员不懂点是不大像样,但是感觉网上的教程指东指西的,所以就自己写了一个,作为一个备忘录用吧。

主要参考这个文章:http://rogerdudler.github.io/git-guide/index.zh.html。

1.git与github

    Git是一个分布式版本控制/软件配置管理软件,原是Linux内核开发者Linus Torvalds为更好地管理Linux内核开发而设计,主要用于版本控制。

    GitHub 是一个共享虚拟主机服务,用于存放使用Git版本控制的软件代码和内容项目。它由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath、PJ Hyett和Tom Preston-Werner使用Ruby on Rails编写而成。GitHub同时提供付费账户和为开源项目提供的免费账户。根据在2009年的Git用户调查,GitHub是最流行的Git访问站点。除了允许个人和组织创建和访问代码库以外,它也提供了一些方便社会化软件开发的功能,包括允许用户跟踪其他用户、组织、软件库的动态,对软件代码的改动和 bug 提出评论等。GitHub也提供了图表功能,用于显示开发者们怎样在代码库上工作以及软件的开发活跃程度。GitHub也提供一个粘贴箱风格的站点Gist,供软件代码库使用的Wiki,以及通过git版本库进行编辑和管理的网页托管功能。

2.简易使用指南

    下面就以github站点为例简单介绍git的用法。

    1)创建新仓库

  在github创建账户,例如Jack,然后你的个人主页地址是:github.com/Jack。然后创建一个新的仓库(repository),例如取名字叫做test。

  这里你就会发现GitHub会提示你怎么上传这个仓库的文件,分为HTTP和SSH方式,下面有命令,按照这些命令一步一步做就可以了,下面我会简单介绍这些步骤的目的。

    2)在linux系统安装git

#不同linux的发行版本区别就是安装程序的不同#这里以centos为例使用yumyum install git

    3)上传项目

#1.进入到项目目录cd path/to/test/#2.创建本地新仓库git init#3.添加文件到index(缓存区,稍后会解释)git add <filename>#或者添加全部git add *#4.提交改动到HEAD(同样稍后解释)git commit -m "代码提交信息"#5.添加远程站点信息,为下一步提交代码至远程站点做准备这里就是GitHub你的个人站点了git remote add origin https://github.com/Jack/test.git#之后你可以如下查看远程站点信息git remote -v#也可以通过如下命令修改git remote set-url origin https://your url#6.推送改动,将改动实际提交至远端站点git push -u origin master

注:

  以上是HTTP的方式,SSH方式大同小异,但是需要在使用前生成公钥,这种方式鄙人还没有试过,所以读者需要这种方式可以咋网络上单独搜索下这种方式,比较有针对性,结果应该可用。

  还有我在添加远程站点的时候出现一下错误:

  error: The requested URL returned error: 403 while accessing 。。。

  解决方法就是通过修改远程站点:

#将jack换成你的用户名就可以了git remote set-url origin https://Jack@github.com/Jack/test.git

4)几个概念

  针对3)中的几个名词解释以下几个概念。

  git的工作流

  你的本地仓库由 git 维护的三棵“树”组成。第一个是你的工作目录,它持有实际文件;第二个是缓存区(Index),它像个缓存区域,临时保存你的改动;最后是 HEAD,指向你最近一次提交后的结果。如下图所示:

  分支

  分支是用来将特性开发绝缘开来的。在你创建仓库的时候,master 是“默认的”。在其他分支上进行开发,完成后再将它们合并到主分支上。

  例如,创建一个叫做“feature_x”的分支,并切换过去:

#1.创建新分支git checkout -b feature_x#2.切换到主分支git checkout master#3.再把新建的分支删掉git branch -d feature_x#####################除非你将分支推送到远端仓库,不然该分支就是 不为他人所见的git push origin <branch>  

  到这里3)中的几个疑点应该稍有明白了吧。。。

 5)标签

  在软件发布时创建标签,是被推荐的。这是个旧有概念。可以执行如下命令以创建一个叫做 1.0.0 的标签:

#创建tag,1b2e1d63ff 是你想要标记的提交 ID 的前 10 位字符git tag 1.0.0 1b2e1d63ff#使用如下命令获取提交 ID#你也可以用该提交 ID 的少一些的前几位,只要它是唯一的git log

 

 6)替换本地改动

  假如你做错事,你可以使用如下命令替换掉本地改动实现类似回滚的功能:

git checkout -- <filename>

 

  此命令会使用 HEAD 中的最新内容替换掉你的工作目录中的文件。已添加到缓存区的改动,以及新文件,都不受影响。

  假如你想要丢弃你所有的本地改动与提交,可以到服务器上获取最新的版本并将你本地主分支指向到它:

git fetch origingit reset --hard origin/master

 

3.其他指南与手册

  git使用简易指南:http://rogerdudler.github.io/git-guide/index.zh.html。

  GitHub帮助手册:http://rogerdudler.github.io/git-guide/index.zh.html。

  git社区参考书:http://git-scm.com/book。

Github用法简介