1. 创建版本库
//选择库所在的位置
$ mkdir learngit //创建文件夹
$ cd learngit //进入到learngit文件下
$ pwd //显示当前目录
/Users/....../learngit
2. 将文件放入git仓库
将编写好的文件(readme.txt)放在learngit文件下
第一步 用命令git add告诉git 把文件添加到仓库:
$ git add readme.txt
第二步 用命令git commit告诉git 把文件提交到仓库:
$ git commit -m "wrote a readme file"
[master (root-commit) eaadf4e] wrote a readme file
1 file changed, 2 insertions(+)
create mode 100644 readme.txt
git commit命令 -m
后面输入的是本次提交的说明 可以输入任意内容 最好是有意义的 这样就能从历史记录里方便地找到改动记录
可以一次add很多文件
3. 修改文件
成功修改后 用git status
查看结果
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: readme.txt
no changes added to commit (use "git add" and/or "git commit -a")
git status
命令可以让我们时刻掌握仓库当前的状态 上面的命令输出告诉我们 readme.txt被修改过了 但还没有准备提交的修改
git diff
命令可以查看上次修改了哪些内容
再次提交时依旧是2.的两步
git log
命令可以显示从最近到最远的提交日志
git log --pretty=oneline
可以使显示的内容更简洁
4. 版本回退
git必须知道当前版本是哪个版本,在git中,用HEAD
表示当前版本,也就是最新的提交1094adb…(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^
,上上一个版本就是HEAD^^
,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
。
git reset --hard HEAD^
可以退回到上一版本
此时git log
不会发现最新的那个版本,若项回到最新版本可以翻阅git书写记录找到那个版本的commit id
$ git reset --hard commit id
可以回到commit id这个版本 commitid 可以不用写全写前5个就好
eg. $ git reset --hard fc6b1
Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把HEAD从指向那个版本
git reflog
用来记录每条指令 当找不到commit id时可以使用