- 初次运行 git 前的配置
$ git config --list --show-origin
- 配置用户
# 查看
$ git config user.name
# 修改
$ git config user.name = 'mary'
- 初始化本地仓库
执行之后,当前文件夹下面会多出一个 .git 的隐藏文件
$ git init
add commit
工作区 —------> 暂存区 -------> 版本区
已修改 已暂存 已提交
- 查看工作区文件状态
$ git status
- 把工作区的文件添加到暂存区
$ git add 指定文件名
$ git add .(将工作区内容全部提交)
- 将暂存区的文件提交到版本区
$ git commit -m 'information'
- 查看历史操作记录
谁提交的,提交的时间是多久,提交时的描述信息是什么。。。
$ git log
- 时光回退
# 回退一个版本
$ git reset head~
# 回退10个版本
$ git reset head~10
# 回退一个版本库、暂存区、工作区
$ git reset --hard head~
# 回退一个版本库、暂存区(默认)
$ git reset --mixed head~
# 回退一个版本库
$ git reset --soft head~
# 回滚指定快照(快照hash值)
$ git reset --hard 4f06a806b768c496a4d81654a02b365914ca1899
- 时光前进
不小心删了、硬回滚错了的解决办法
# git 记录每一次操作的版本id号
$ git reflog
# 回滚到指定id的版本
$ git reset --hard d2eef39
- 暂存区与工作树
给已经存在的 a 文件添加内容
$ git diff
# 对比暂存区的 a.txt 和 工作区的 a.txt
diff --git a/a.txt b/a.txt
# 表示对应文件的 id 分别是 82a90be 和 0846595,左边暂存区,右边当前目录,最后 100644 是指定文件类型和权限
index 82a90be..0846595 100644
# -- 表示该文件是旧文件(存放在暂存区)
--- a/a.txt
# ++ 表示该文件是新文件(存放在工作区)
+++ b/a.txt
# 以@@开头合结束,-表示旧文件,+表示新文件,后边数字表示“开始行号,显示行数”
@@ -1 +1,2 @@
fjadfsa
+423914739124
对比工作树和最新提交
$ git diff head
diff --git a/a.txt b/a.txt
index 82a90be..0846595 100644
--- a/a.txt
+++ b/a.txt
@@ -1 +1,2 @@
fjadfsa
+423914739124
对比两个历史快照
$ git diff d2eef39517483d3e9d3e5c88b1a6a3f049f88068 4f06a806b768c496a4d81654a02b365914ca1899
diff --git a/a.txt b/a.txt
deleted file mode 100644
index 82a90be..0000000
--- a/a.txt
+++ /dev/null
@@ -1 +0,0 @@
-fjadfsa
diff --git a/b.txt b/b.txt
deleted file mode 100644
index 965f62b..0000000
--- a/b.txt
+++ /dev/null
@@ -1 +0,0 @@
-我很认真的在写代码
比较仓库和暂存区
$ git diff --cached 4f06a806b768c496a4d81654a02b365914ca1899
diff --git a/a.txt b/a.txt
new file mode 100644
index 0000000..82a90be
--- /dev/null
+++ b/a.txt
@@ -0,0 +1 @@
+fjadfsa
diff --git a/b.txt b/b.txt
new file mode 100644
index 0000000..965f62b
--- /dev/null
+++ b/b.txt
@@ -0,0 +1 @@
+我很认真的在写代码
- 删除文件
不小心删了 b.txt,怎么恢复?
$ git checkout -- b.txt