这个是git的工做模式,有工做区(Working Directory),也就是咱们的编辑器,里面的文件,版本库(Repository)包含缓存区(stage)和分支(master),能够有多个分支,在开始的时候git会自动帮咱们建立第一个分支,指向master的一个指针叫HEAD,也如今使用版本分支。
如图:git
首先
在须要建立版本目录下打开git bash:缓存
$ mkdir learngit $ cd learngit $ pwd //命令用于显示当前目录 /Users/michael/learngit
第二步:经过$git init
把这个目录变成能够管理的仓库bash
$ git init Initialized empty Git repository in /Users/michael/learngit/.git/
先建立一个文件filename.txt
输入好比:
Git is a distributed version control system.
Git is free software.编辑器
接下来spa
1)工做区 ===> 版本库(缓存区) : $git add <filename>
指针
$ git add readme.txt
2)缓存区 ===> 主分支 : $git commit
code
$ git commit -m "wrote a readme file"//-m "..." 指的是输入提交说明"..." [master (root-commit) cb926e7] wrote a readme file 1 file changed, 2 insertions(+) create mode 100644 readme.txt
能够多存执行 1) 在执行 2) 一次性提交多个文件
3) 查看工做区状态 : $git status
仓库状态、$git diff
对比工做区 和 最新版本 查看具体修改了什么内容blog
4) 历史记录日记 : $git log
增长--pretty=oneline
一行显示值留下 commit id 和 修改说明ip
5) 后退一个版本:$git reset --hard HEAD^
it
6) 回退到某个版本,这里须要用的版本好 commit id 前7 位数:
$git reset --hard 3628164
改成指向 add distributed
7) 找不到commit id
,$git reflog
返回 每一次命令 记录,包括 commit id 等
8) 撤回操做 丢弃工做区的修改 $git checkout -- <filename>
:
$ git checkout -- readme.txt
有2
种状况:
让这个文件回到最近一次$git add
或 $git commit
时的状态。就近原则
9) 若是想把缓存区的修改撤消( unstage ) $git reset HEAD file
10)删除文件
工做区删除:$rm <filename>
删除后能够用$git status
查看,删错了, 能够$git checkout --<filename>
恢复
版本库删除:$git rm <filename>
删除后不可恢复当前这一步提交的修改,只能恢复到上一次的提交的文件
......