Git 操作命令

添加文件到仓库 git add

1
$ git add *

提交文件到仓库 git commit

1
$ git commit -m "Here is the message"

commit 命令可以提交多个之前 add 的文件

1
2
3
$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."

查看当前仓库状态 git status

没有需要提交的修改

1
2
3
4
$ git status

On branch master
nothing to commit, working tree clean

文件有修改

1
2
3
4
5
6
7
8
9
10
$ 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 diff

1
2
3
4
5
6
7
8
9
10
$ 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.

查看日志 git log 详细

  • git log 查看提交日志
  • git log --oneline 精简模式显示
  • git log --pretty=oneline 精简模式并显示完整版本号
  • git log --graph 图形模式显示
  • git log --stat 显示文件更改列表
  • git log --author=_name 根据作者筛选
  • git log -p file_name 查看某个文件的详细修改
  • git log -L start,end:file_name 查看文件某行范围内的修改记录
  • git log --stat commit_id 根本版本号查看提交修改列表

版本退回 git reset 详细

在 Git 中,用 HEAD 表示当前版本,也就是最新的提交版本

上一个版本就是 HEAD^

上上一个版本就是 HEAD^^

当然往上 n 个版本写 n 个^比较容易数不过来,所以写成 HEAD~n

~n 相当于连续的 n 个”^”

git reset --hard HEAD^

1
2
3
$ git reset --hard HEAD^

HEAD is now at e475afc add distributed

git reset --hard commit_id

也可以直接切换到某个版本,版本号可以不写全,前 4 位就可以了,Git 会自动去找,也可以 Tab 补全

查看操作日志 git reflog

1
2
3
4
5
6
$ git reflog

77ac955 (HEAD -> master) HEAD@{0}: reset: moving to HEAD~2
2c8fcc8 (origin/master) HEAD@{1}: commit: wrote a readme file
87c9d12 HEAD@{2}: commit: add distributed
77ac955 (HEAD -> master) HEAD@{3}: commit (initial): wrote a readme file