1.创建一个版本库
$ mkdir learngit
$ cd learngit
$ pwd
pwd 命令用于显示当前目录 learngit是文件名
2.通过git init
命令把这个目录变成Git可以管理的仓库:
git init
目录下多了一个.git
的目录 (不可修改)
如果没有看到.git
目录,那是因为这个目录默认是隐藏的,用ls -ah
命令就可以看见
3.添加文件到Git仓库
- 使用命令
git add
,注意,可反复多次使用,添加多个文件 - 使用命令
git commit -m
,完成。
ps:
-
-m 后面输入的是本次提交的说明
-
Git命令必须在仓库内执行
-
添加文件时,该文件必须在当前目录下存在
4.显示仓库状态(随时可看)
git status
修改了readme.txt文件
5.查看具体修改
git diff
如果git status
告诉你有文件被修改过,用git diff
可以查看修改内容
6.显示提交日志
git log
简单显示
git log --pretty=oneline
PS:黄色的数字是版本号
7.版本回退
-
回到上一个版本
git reset --hard HEAD^
在Git中,用HEAD
表示当前版本,也就是最新的提交c9846…,上一个版本就是HEAD^
,上上一个版本就是HEAD^^
,当然往上100个版本写100个^
比较容易数不过来,所以写成HEAD~100
-
回到未来某个版本
git reset --hard c9846
版本号可以不用写完
-
查看历史命令
git reflog
8.理解暂存区
-
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支
master
,以及指向master
的一个指针叫HEAD
。 -
用
git add
把文件添加进去,实际上就是把文件修改添加到暂存区 -
用
git commit
提交更改,实际上就是把暂存区的所有内容提交到当前分支
9.管理修改
Git跟踪并管理的是修改,而非文件
每次修改,如果不用git add
到暂存区,那就不会加入到commit
中
用git diff HEAD -- readme.txt
命令可以查看工作区和版本库里面最新版本的区别
10.撤销修改
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file
。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD
,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
11.删除文件
删除test文件
rm test.txt
工作区和版本库不再一致
-
从版本库中删除该文件
git rm test.txt
-
删错了 ,恢复
git checkout -- test.txt
参考资料:廖雪峰Git教程https://www.liaoxuefeng.com/wiki/896043488029600