Git, 作为一款先进的版本控制工具,已经越来越多被大家才采用。但是由于其学习成本不小,阻拦的不少人,这里推荐廖学峰老师的Git入门教程博客
本博客是对廖雪峰老师博客中的Git命令的简版概述,便于日常使用查询
一、Git 入门
1.1 Git 安装
从官网下载安装Git,然后执行下述命令看是否输出版本信息,验证Git是否安装成功,
1.2 Git 配置
配置用户信息, 分别执行下述命令,设置您的全局用户名和邮箱信息
1 2
| git config --global user.name "Aaron Zhu" git config --global user.email "[email protected]"
|
1.3 基本命令
- 查看各版本的 commit message 、 commit id
- 查看操作Git 的命令历史记录. 版本回退后, git log命令显示的是当前版本之前的版本信息和commit id,无法查看当前版本之后版本的commit message、commit id。故可以使用如下命令,查看之后版本的commit id
二、版本库基本操作
2.1 创建版本库
在项目文件夹(无须为空文件夹)下,执行下述命令创建版本库,执行成功后会在该目录下创建一个.git的隐形文件夹
2.2 添加新文件、文件修改
使用命令git add 将新文件、文件修改 添加到暂存区Stage, 注意,可反复多次使用,添加多个文件、修改
1 2 3
| git add main.c git add folder1/ git add *
|
2.3 文件删除
删除文件操作,对于Git而言,本质上也是一种文件修改。所以在磁盘删除文件后,可以使用git add命令添加删除文件的修改到 Stage,同时Git也提供了下述命令用于添加 删除操作的文件修改
2.4 提交
对于 Stage 中的新文件、文件修改,使用命令git commit -m ,完成提交. Note: 版本的备注信息 message一般不建议省略,否则后期很难追溯
1
| git commit -m "Frist Commit"
|
三、文件修改的撤销
对于某些 文件修改,我们可能并不想,甚至不能提交上去,那么该如何撤销呢?
文件修改的撤销,有两种场景:
- 工作区的文件修改,即,欲撤销的文件修改未 add到 暂存区Stage中
- 暂存区的文件修改,即,欲撤销的文件修改已经被 add到 暂存区Stage中
3.1 工作区中文件修改的撤销
工作区中文件修改的撤销 ,即, 此修改发生在工作区中,但是未被添加到暂存区Stage中
对于工作区的未添加的文件修改, 可以使用下述命令进行撤销。其撤销结果有 2 种情况:
- 如果该 未添加的文件修改 是在 git add 后修改的,即之前修改了若干次加入Stage后 ,然后又发生了修改,则撤销后,恢复为Stage中的版本
- 如果该 未添加的文件修改 过程中,从未添加到Stage中,则恢复为版本库中的版本
即:该文件的撤销结果,为最近一次 git add 或 git commit 的文件状态。即,该状态之后发生了任何未添加的修改都将被撤销
1 2
| git checkout -- filename.c git checkout -- .
|
Note: 该用法中(工作区中文件修改的撤销),命令中的 — 不可省略,否则意为 切换分支
3.2 暂存区中文件修改的撤销
暂存区中文件修改的撤销, 即,文件修改,被意外的add到了暂存区
使用下述命令,将暂存区的文件修改,重新放回工作区,同时暂存区清空。执行后可以看到,文件状态为被修改,且未被添加到暂存区。此时,工作区中的文件修改,你可以继续编辑、添加、提交,也可以继续撤销,对于工作区中文件修改的撤销,请参考上文
四、版本回滚
4.1 回退到之前
在Git中,用HEAD表示当前版本,也就是最新的提交版本。上一个版本就是HEAD^ ,上上一个版本就是HEAD^^ ,以此类推……当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
git reset 命令 回退到之前的版本
1 2 3
| git reset --hard HEAD^ git reset --hard HEAD^^ git reset --hard xxxx
|
4.2 回退到之后
代码回退到之前的版本后,如果想继续回退到之后的版本,则无法使用上文HEAD标识回退到未来的版本,但可以使用commit id的方法进行回退
1 2
| git reset --hard commitId git reset --hard 1c23bc
|
- 如果git bash窗口未关闭,可以通过窗口记录,找到并使用之后版本的 commit id进行回退
- 如果git bash窗口重新打开了,也可以使用下述命令找到你 操作Git 的命令历史记录,从而找到之后版本的commit id
五、标签
在Git中,不同版本的代码是以commit id作为版本号进行区分的,但是由于commit id是Git计算生成,不便记忆。故可在指定版本上添加上自定义标签,便于使用(相当于给某个版本代码,取个易于记忆的别名,方便日后取用)。
5.1 添加标签
1 2
| git tag tagName git tag v1.0
|
- 如果想给之前的某个版本添加标签,无须回退到该版本,只需在上述命令后添加该版本的commit id即可
1 2
| git tag tagName commitId git tag v0.8 3cbd33
|
- 像提交版本添加备注信息便于日后追溯一样,在添加标签时,同样也可以添加关于该标签的注释信息
1 2 3 4 5
| git tag -a tagName -m <message> git tag -a v1.1 -m "version 1.0 Final"
git tag -a tagName -m <message> commitId git tag -a v0.3 -m "version 0.8 SNAPSHOT" 2caf9b
|
5.2 查看标签
- 使用下述命令查看指定标签版本的信息,包括commit id、时间 …
1 2
| git show tagname git show v0.8
|