逍遥游

git的使用方法(以github为例)---初级

概念介绍

关于git(About git)

git是一个免费、开源的分布式版本控制系统,最早由Linus Torvalds开发、用于linux系统内核代码的管理。其他的版本还有cvs、svn等,关于它们的介绍和不同之处,可以参考 版本管理svn,git,cvs比较

关于github(About github)

github 是一个提供git仓库服务的平台,公开仓库是免费提供的。所谓仓库,就是存放代码和版本信息的地方。

环境配置(Setting envoriment)

要使用git就必须配置git环境,毋庸置疑。

Linux系统:

1
2
//take Ubuntu as an example
sudo apt-get install git

Windows系统:

可以用github官方的Github for Windows,也可以安装mysysgit,前者是基于后者的,附带了图形化界面。安装步骤略。

git命令的简单使用(demos)

1、开始使用之前要设置自己的邮箱和用户名,用于git的版本跟踪(谁提交的)。

1
2
git config --global user.email "me@newnius.com"
git config --global user.name "newnius"

设置邮箱与用户名 设置邮箱与用户名

2、初始化git仓库

有两种,一种自己在本地创建,从零开始开发;另一种是从远程仓库克隆,从已有的代码开始开发。

本地创建仓库:
1
2
3
mkdir gitTutorial
cd gitTutorial
git init

创建并初始化本地仓库 创建并初始化本地仓库

查看可以发现项目目录下会自动生成了几个文件,包括保存分支信息,当前分支指向等信息,具体目前不用知道,只需要当成git用来管理项目的数据就行了。

查看.git目录结构 查看.git目录结构

从远程服务器克隆到本地:

首先要获得项目的git仓库地址,github在项目右下角,选择合适的链接

查看仓库地址 查看仓库地址

1
git clone https://github.com/newnius/newnius.github.io.git

从远程仓库克隆到本地 从远程仓库克隆到本地

3、对已有的文件进行修改并提交

1
2
3
cd newnius.github.io
vim index.html
git commit -a -m 'add register page link'

说明:

引号中的内容是注释,即记录为什么要做这次改变
-m 参数:m代表msg,表示后面紧跟的是注释
-a 参数:a代表all,表示将且仅将所有(被修改或已删除)并且已经被git管理(之前提交的)的文档提交到仓库中。用这个参数可以在只对当前代码进行删改的情况下略去一条命令,节省时间。

提交修改 提交修改

4、创建新的文件并提交

1
2
3
touch main.html
git add main.html
git commit -m 'add main page'

增加文件后的提交 增加文件后的提交

可以看到,如果不用add命令提交会失败。这是因为git不会主动记录你对文档的更新,除非你主动要求(比如add命令,或者是加上“-a”选项,但是注意“-a”选项无法处理新增的文件)。
如果修改的东西太多,add会很麻烦,简单的方法是利用

1
git add .

让git自动检查当前目录(包括子目录)下的所有更改。

增加文件后的提交 增加文件后的提交

5、删除文件并提交

前面也提到了,只需要

1
git commit -a -m 'rm ucenter page'

就可以了

删除后的提交 删除后的提交

6、重命名或者移动文件

可以看到,当我们利用

1
git add .

命令的时候会有警告:
对文件进行了重命名和移动操作,如果不指定模式(-A 或者 –ignore-removal),系统将默认使用–ignore-removal 参数,这种模式将导致该文件的轨迹丢失(也就是说该文件的历史记录被忽略,后期无法还原等等)。

移动或重命名文件后的提交 移动或重命名文件后的提交

推荐使用“-A”参数(或者–all,同义),记录下对文件的修改历史,除非确认不需要记录,但是这样最好也要加上–ignore-removal参数,尽管有点长^-^。

7、将修改推送到远程仓库

到目前为止,我们的代码都是保存在本地,如果想共享代码、跟其他人一起开发,就需要把自己的代码推送到远程仓库。

1
git push origin master

填上git仓库的账号和密码(github账号和密码)就可以开始推送了

推送到远程仓库 推送到远程仓库

1
2
3
//origin位置 表示要推送到哪个仓库,origin是说推送到仓库源,即从哪来就到哪去
//也可以自己通过
git remote add origin https://github.com/newnius/newnius.github.io.git

命令设置origin

//master位置 表示提交的分支,忽略表示提交所有分支

8、免登录推送代码

默认情况下,每次推送代码时都要求填写帐号和密码,太麻烦,于是想到了免登录。所谓的免登录其实就是系统记住密码自动填写(类似,但是实际上不是)。

创建授权密钥
1
ssh-keygen -t rsa -C "me@newnius.com"

位置和密码可以为空,一路回车就行

创建ssh key 创建ssh key

打开密钥文件,复制。地址会提示的。
1
vim /home/newnius/.ssh/id_rsa.pub

在github设置中添加ssh key 在github设置中添加ssh key

打开github设置中心,选择SSH KEYS
添加ssh keys,名字随意,然后粘贴就行。

//测试下链接

1
ssh -T git@github.com

注意:通过这种方式是通过ssh连接的,前面的是基于https协议的,你应该用类似git@github.com:newnius/newnius.github.io.git 这种形式的远程仓库地址来替代。

从远程仓库克隆项目 从远程仓库克隆项目

更多关于分支和回滚的内容中级再涉及,本文仅做入门用。

本文参考了以下两篇文章:【Github教程】史上最全github使用方法:github入门到精通
git-commit(1) Manual Page


多说停止服务,disqus引导注册太过分,暂时不上评论系统了。有机会自己造轮子吧。邮箱:input@newnius.com