Git简明教程
发布于 2018-10-10    122 次阅读
我们都知道Linus大神在1991年创建了Linux操作系统,并从那时起开始不断壮大,逐渐成为全世界最大的服务器操作系统。这么庞大的系统,在2002年之前,Linus大神本人以手工方式合并代码。后来,BitMover 公司的 CEO Larry McVoy 作为 Linus大神的好友,他说服Linus在内核开发中使用BitKeeper。而BitKeeper在免费使用的许可证中加入很多限制条件,惹恼了内核开发者,社区中开始有人尝试破解BitKeeper的协议,导致了BitMover与Linux社区分道扬镳!绕了半天,总算牵扯出我们的主角了,Git!废弃使用BitKeeper后,Linus大神花了两周时间,自己用C写了一个分布式版本控制系统,这就是Git!从这里开始,Git迅速成为最流行的分布式版本控制系统。2008年,GitHub网站的上线更是让Git火爆全球,许多开源软件和软件公司都开始使用Git。

安装Git

Debian系使用apt-get方式安装,Red Hat系使用yum方式安装。

sudo apt-get install git
yum install git

设置用户名和邮箱

Git是分布式版本控制系统,我们在使用之前,需要设置用户名和邮箱。

git config --global user.name "voidcc"
git config --global user.email "admin@voidcc.com"

创建新的版本库 

创建目录然后在目录中初始化版本库。

mkdir voidcc
cd voicc 
git init

提交文件

新建一个readme.md文件并提交到版本库。

echo "This is voidcc.com 开发小院">>readme.md
git add .
git commit -m "add readme.md"

查看状态

git status

查看修改内容

// 比较工作区与暂存区的文件区别。
git diff readme.md
// 比较暂存区跟版本库的文件区别。
git diff --cached readme.md
// 比较工作区跟暂存区的区别。
git diff
// 比较工作区与版本库的区别。
git diff HEAD
// 比较最近两个版本的区别。
git diff HEAD^ HEAD

查看日志

// 查看提交日志
// 添加--pretty=oneline美化显示
git log --pretty=oneline
// 查看操作日志
git reflog

版本库回退

git reset --hard HEAD^

撤销修改

// 撤销工作区修改
git checkout -- readme.md
// 撤销暂存区修改
git reset HEAD readme.md

删除文件

git rm readme.md

创建SSH Key

首先,在用户主目录里查看是否存在.ssh目录,里面是否有id_rsa和id_rsa.pub两个文件,如果存在,则跳过这一步。

ssh-keygen -t rsa -C "youremail@example.com"

其中id_rsa是私钥,id_rsa.pub是公钥。公钥需要配置到GitHub中,这样我们才能将代码push到远端的仓库里。

在 “Account settings” -> “SSH and GPG keys” 页面里,点“New SSH key”,填上任意名称,在Key中粘贴id_rsa.pub文件(公钥)里的内容。

添加远程仓库

首先,登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的空仓库。

git remote add origin git@github.com:voidcc/gitLearn.git
git push -u origin master

推送更新到Github

git push origin master

从Github克隆

git clone git@github.com:voidcc/gitLearn.git "目录名"

创建分支

创建一个名称为voidcc的分支

git checkout -b voidcc
或者
git branch voidcc
git checkout voicc

查看分支

git branch

切换分支

git checkout master

合并分支

合并到当前分支,可以使用--no-ff方式普通合并,强制禁用Fast forward模式,Git就会在merge时生成一个新的commit。

git merge voidcc
或者
git merge --no-ff -m "merge with no-ff" voidcc

删除本地分支

// 删除已合并的分支
git branch -d voidcc
// 删除未合并的分支
git branch -D voidcc
// 删除远程分支
git push origin :voidcc
或者
git push origin --delete voidcc

保存工作区

原理:保存工作目录的中间状态——修改过的被追踪的文件和暂存的变更——并将它保存到一个未完结变更的堆栈中。

// 保存工作区
git stash
// 保存工作区时忽略已暂存的文件。
git stash --keep-index
// 保存工作区时包含新创建的文件。
git stash -u
// 查看保存的工作区
git stash list

恢复工作区

// 恢复最近一次保存的工作区。
git stash pop
// 恢复指定的工作区。
git stash pop stash@{id}
或者
git stash apply stash@{id}
git stash drop stash@{id}

查看远程库

git remote -v

推送本地分支

git push origin voidcc

拉取远程分支到本地

git clone 只能拉取到主分支。

git checkout -b dev origin/voidcc

关联远程分支

如果第一次推送分支时没有使用git push -u origin voidcc推送,则使用git pull需要先关联本地分支与远程分支。

git branch --set-upstream dev origin/voidcc

标签管理

// 当前版本打标签。
git tag v0.1
// 为某一版本打标签并带上说明,-a指定标签名,-m指定说明文字。
git tag -a v0.1 -m "版本v0.1" commit_id
// 查看标签列表。
git tag
// 查看标签信息。
git show v0.1
// 删除标签。
git tag -d v0.1

推送某个标签。

git push origin v1.0

推送全部本地标签。

git push origin --tags

删除远程库标签。

git push origin :refs/tags/v0.1

版权说明 : 本文为 开发小院 原创文章, 转载时请注明作者和原文连接

文章标题 : Git简明教程

文章连接 : http://www.voidcc.com/content/git-concise-tutorials


 主题目录

    欢迎关注本站公众号 开发小院