先介绍一下Git:
Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理。在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中。目前,包括Rubinius和Merb在内的很多知名项目都使用了Git。Git同样可以被诸如Capistrano和Vlad the Deployer这样的部署工具所使用。同样,eoe.cn客户端的源码也托管在github上。
而GitHub可以托管各种git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。
GitHub 使用 git 分布式版本控制系统,而 git 最初是 Linus Torvalds 为帮助Linux开发而创造的,它针对的是 Linux 平台,因此 git 和 Windows 从来不是最好的朋友,因为它一点也不像 Windows。GitHub 发布了GitHub for Windows,为 Windows 平台开发者提供了一个易于使用的 Git 图形客户端。
Git官网下载:https://git-scm.com/download/
用户信息:
配置你的个人用户名称和电子邮件地址。这两条配置很重要,每次Git提交时时都会引用这两天信息,说吗谁提交了更新,所以会随更新内容一起呗永久纳入历史记录。
$ git config --global user.name “youname” $ git config --global user.email “youremail@qq.com”
通过SSH密钥连接Github邮箱:
$ ssh-keygen -t rsa -C "youremail@qq.com"
如果连接成功的话会有生成一个图形的:(每次的连接都会生成不同的图形的)
如果用了 —global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 —global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里。
查看已有的配置信息:
$ git config --list $ git config -l
获取帮助:
例如想获取config命令的帮助信息
$ git help config $ git config --help
初始化新仓库:
$ git init
初始化后,在当前目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中。不过目前,仅仅是按照既有的结构框架初始化好了里边所有的文件和目录,但我们还没有开始跟踪管理项目中的任何一个文件。
新建文章:
$ hexo n 文章名
跟踪文件:如果当前目录下有几个文件想要纳入版本控制,需要先用 git add 命令告诉 Git 开始对这些文件进行跟踪,然后提交:(将文件加到暂存区域)
$ git add readme.txt
跟踪全部文件:
$ git add .
提交更新:
$ git commit -m “first version”
上传:
$ git push origin master
从现有仓库克隆:(三个地址都是一样的,只是不同写法而已)
$ git clone git://github.com/youname/project.git $ git clone git@github.com:youname/project.git $ git clone https://github.com/youname/project.git
检查当前文件状态:
$ git status
创建gitignore文件:
$ touch .gitignore
查看修改之后暂存的文件内容:
$ git diff
移除文件:
$ git rm readme.txt
重命名文件:
$ git mv oldname.txt newname.txt
查看提交历史:
$ git log
取消暂存:
$ git reset HEAD readme.txt
添加远程仓库:(远程仓库必须先在github上建好)
$ git remote add [shortname] [url]
实例:
$ git remote add origin git@github.com:youname/yourRepo.git
推送数据到仓库:
$ git push [remote-name] [branch-name]