1、创建一个空目录:
$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit
2、把这个目录变成git可以管理的仓库:
$ git init
3、把文件添加到仓库:
$ git add readme.txt
4、文件提交到仓库:
- -m后面输入的是本次提交的说明
- commit之前需要先add
$ git commit -m "wrote a readme file"
[master (root-commit) cb926e7] wrote a readme file
1 file changed, 2 insertions(+)
create mode 100644 readme.txt
5、查看当前仓库状态:
- 下面表示readme.txt被修改了,没有add和commit
$ 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")
6、对比本地修改的差异:
$ git diff readme.txt
diff --git a/readme.txt b/readme.txt
index 46d49bf..9247db6 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,2 @@
-Git is a version control system.
+Git is a distributed version control system.
Git is free software.
7、查看提交记录
$ git log
$ git log --pretty=oneline
8、回退版本
$ git reset --hard HEAD^
$ git reset --hard 3628164 //可以指定版本
上一个版本就是HEAD,上上一个版本就是HEAD,当然往上100个版本写100个比较容易数不过来,所以写成HEAD~100
9、查看历史操作
防止出现回退之后后悔了,想找到回退之前的版本可以如下命令:
$ git reflog
10、撤销修改
(1)当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时:
git checkout -- file //注意需要加--,否则变成了切换分支
(2)当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令:
git reset HEAD file
第二步:
git checkout -- file
11、删除文件
git rm test.txt
$ git commit -m "remove test.txt"
删除错误但是没有commit时还原命令:
$ git checkout -- test.txt