Git的基本操作
Git安装教程看这里
创建版本仓库
在要创建版本仓库的地方,右键弹出的对话框中,点击Git Bash Here
,在命令行中输入git init
命令创建版本仓库,如图所示:
版本库(或仓库)可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
注意:创建版本库的路径不能有中文
添加文件到版本库
首先在d/GitTest
目录下创建一个文件,这里创建一个readme.txt
文件来记录双十一要买的东西,内容如下:
购物清单
1. 第一行代码
2.Android开发艺术探究
保存文件后,在命令行中输入git add .
添加文件到仓库,如下图:
git add 文件名
是添加单个文件到仓库,而git add .
是添加所有文件到仓库
提交文件到仓库
使用git commit
命令,提交添加的文件,如图:
-m
参数是本次提交的说明
如果你没有这个参数,Git也会要求你添加本次提交的说明。现在由于我们已经提交,不能重复提交,所以要修改下readme.txt
文件(添加3.现代操作系统
这一项),重新提交(不使用-m
)后如下图Git要求你添加本次提交的说明:
- 按下
i
键,切换到编辑模式(最开始是命令行模式) - 填写本次提交的说明
- 在输入完成后别按回车,而是要按 ESC 键返回到命令模式
- 连续输入两个大写的 "Z"(用 Shift 键或 Capslock 键都可以),就保存并退出了
成功后结果如图
推荐直接使用-m
参数,要简单很多。
回退版本
- 查看提交信息
使用git log
命令查看提交的信息,如图:
图中
commit 9f3eb0ea2b3d1437f1b242957aa21fd4afa25ef8
中的9f3eb0ea2b3d1437f1b242957aa21fd4afa25ef8
是commit id(版本号)
,用来区分各个版本
- 回退到上一个版本
如果我想回到第一次提交时的购物清单,那么我就可以使用git reset
命令来实现,例如
git reset --hard HEAD^ //回退到上一个版本
git reset --hard HEAD^^ //回退到上上一个版本
HEAD表示当前版本,也就是最新的提交。可以用
git reset --hard HEAD^
表示上一个版本,或者用HEAD~1
表示上一个版本。
结果如图:
- 回退到指定版本
我们可以使用git reset --hard commitId
(commitId是版本的id)回退到指定版本。比如我要回退到第二次提交时的版本,那我就可以使用git reset --hard 9f3eb0
回退到第二次提交时的版本。9f3eb0
是第二次提交的commitId
的前几位,Git会通过这个来寻找指定的版本,如图回退到第二次提交时的版本:
工作区和暂存区
工作区:就是在电脑里能看到的目录
暂存区:使用git add
命令把文件修改添加到的区域
修改readme.txt
文件,添加一条4.算法导论
。此时使用git status
查看修改,如图:
git add .
后,再使用git status
结果如图,修改被添加到暂存区。
git commit
是提交暂存区中的修改,如果修改没有被add
进入暂存区,那git commit
命令就不能把修改提交
撤销修改
- 工作区的修改
当我们修改文件时,发现出错了,此时还未将修改添加到暂存区,就可以使用git checkout -- file
来撤销操作。
- 暂存区的修改
- 使用
git reset HEAD file
把暂存区的修改回退到工作区 - 使用
git checkout -- file
来撤销工作区的修改。
如果已经提交,那就只能通过上面的版本回退的方式
参考:
- 扔物线的《Git 原理详解及实用指南》
- 廖雪峰的Git教程