0. 基础
-
系统
Windows7-64bit-旗舰版
-
Git
Git-2.19.1-64-bit
-
时间
2018/11/13
1. Git概述
Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理Linux 内核开发而开发的一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS、Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。Git 的工作就是创建和保存你项目的快照及与之后的快照进行对比。
2. Windows平台的Git安装
-
安装包下载链接
-
安装
直接双击运行下载的【Git-2.19.1-64-bit.exe】,根据安装向导进行安装即可。
安装完成之后,可以在开始菜单里找到"Git"->"Git Bash":Git 命令窗口和"Git GUI":图形界面项目管理工具等。
3. Git基本操作
-
打开Git命令窗口
-
创建并初始化Git仓库
$ git init
Git 的很多命令都需要在 Git 仓库中运行,所以 git init 是使用 Git 的第一个命令,在执行完成 git init 命令后,Git 仓库会生成一个 .git 目录,该目录包含了资源的所有元数据。
-
在项目目录中随便生成两个文件
-
将项目文件添加到缓冲区
$ git add 文件名
或
$ git add .
-
将缓冲区内容提交到仓库
1) Git 为每一个提交都记录你的用户名与电子邮箱地址,所以第一步需要配置用户名和邮箱地址
$ git config --global user.name '用户名'
$ git config --global user.email '邮箱地址'
2) 进行提交
$ git commit -m '提交注释'
3) 直接跳过add命令进行提交
注:这种方式不再需要进行add命令将文件先加入到缓冲区了,相当于add和commit -m的结合。
$ git commit -am '提交注释'
-
利用vi/vim编辑器进行文件修改
1) 打开vi/vim编辑器
$ vim README
2) 修改文件
在 README 添加内容:【# 进行 Git 测试】,然后保存退出。
3) 重新提交
-
查看文件修改之后的区别
尚未缓存的改动:git diff
查看已缓存的改动: git diff --cached
查看已缓存的与未缓存的所有改动:git diff HEAD
显示摘要而非整个 diff:git diff --stat
1) 修改文件
在 hello.php 文件中添加内容:【# 进行 Git 测试】,然后保存关闭。
2) 查看改动
-
取消缓冲
1) 修改文件
在 hello.php 文件中添加内容:【# 进行 Git 测试2】,然后保存关闭。
在README文件中添加内容:【# 进行 Git 测试2】,然后保存关闭。
2) 将修改后的两个文件都提交到缓存区,然后取消其中一个的缓存
3) 进行提交
可以发现,通过commit -m的方式提交只是提交了位于缓冲区的README而没有提交不位于缓冲区的hello.php。
-
删除文件
git rm 文件名 【直接从工作目录中删除文件】
git rm -f 文件名 【直接从工作目录中删除文件,如果该文件删除之前修改过并且已经放到缓冲区】
git rm --cached 文件名【将文件从缓冲区删除但仍保留在工作目录中】
git rm -r * 【如果后面跟的是一个目录做为参数,则会递归删除整个目录中的所有子目录和文件】
-
移动或重命名一个文件、目录、软连接
4. Git分支管理
-
概述
分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作,有人把 Git 的分支模型称为"必杀技特性",而正是因为它,将 Git 从版本控制系统家族里区分出来。
-
列出分支
-
创建分支
$ git branch 分支名
-
切换分支
1) 在当前的master分支下新建一个文件
2) 在当前的master分支下将所有文件进行提交
3) 切换分支
$ git checkout 分支名
注:当切换到"newbranch1"分支的时候,在"master"分支添加的新文件test.txt被移除了, 当再次切换回"master"分支的时候,文件test.txt又重新出现了。这是因为当以此方式在原分支处创建了新分支,如果后来原分支又有更新提交, 当切换到新分支,Git 将还原工作目录到创建新分支时候的样子。
4) 创建分支并直接切换进去
$ git checkout -b 分支名
注:如你所见,我们创建了一个分支,在该分支的上下文中移除了一些文件,然后切换回我们的主分支,那些文件又回来了。使用分支将工作切分开来,从而让我们能够在不同上下文中做事,并来回切换。
-
删除分支
$ git branch -D 分支名
-
分支合并
$ git merge 分支名
5. 查看提交历史
$ git log 【查看详细的历史记录】
$ git log --oneline 【查看简化的历史记录】
$ git log --oneline --graph 【查看历史记录的拓扑图】
$ git log --reverse --oneline【参数reverse逆向显示历史记录】
等等
6. Git标签
○ 创建标签
$ git tag -a 标签名
○ 查看已有标签
$ git tag
○ 删除标签
$ git tag -d 标签名