1.创建数据-提交数据
2.git四种状态
3.git基础命令
在git工作目录建立三个文件
[root@docker01 git_data]# touch a b c
(1)git status查看状态
git status只能查看区域状态的不同,不能查看文件内容的变化。
[root@docker01 git_data]# git status
# 位于分支 master
#
# 初始提交
#
# 未跟踪的文件:
# (使用 "git add <file>..." 以包含要提交的内容)
#
# a
# b
# c
提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)
(2)git add单个文件提交暂存区
[root@docker01 git_data]# git add a
[root@docker01 git_data]# git status
# 位于分支 master
#
# 初始提交
#
# 要提交的变更:
# (使用 "git rm --cached <file>..." 撤出暂存区)
#
# 新文件: a
#
# 未跟踪的文件:
# (使用 "git add <file>..." 以包含要提交的内容)
#
# b
# c
暂存区域(index)生成了
[root@docker01 git_data]# ll .git
总用量
drwxr-xr-x 2 root root 6 7月 20 16:25 branches
-rw-r--r-- 1 root root 92 7月 20 16:25 config
-rw-r--r-- 1 root root 73 7月 20 16:25 description
-rw-r--r-- 1 root root 23 7月 20 16:25 HEAD
drwxr-xr-x 2 root root 242 7月 20 16:25 hooks
-rw-r--r-- 1 root root 96 7月 20 17:03 index
drwxr-xr-x 2 root root 21 7月 20 16:25 info
drwxr-xr-x 5 root root 40 7月 20 17:03 objects
drwxr-xr-x 4 root root 31 7月 20 16:25 refs
(3)git rm --cached移除暂存区
[root@docker01 git_data]# git rm --cached a
rm 'a'
[root@docker01 git_data]# git status
# 位于分支 master
#
# 初始提交
#
# 未跟踪的文件:
# (使用 "git add <file>..." 以包含要提交的内容)
#
# a
# b
# c
提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)
(4)git add .全部文件提交暂存区
[root@docker01 git_data]# git add .
[root@docker01 git_data]# git status
# 位于分支 master
#
# 初始提交
#
# 要提交的变更:
# (使用 "git rm --cached <file>..." 撤出暂存区)
#
# 新文件: a
# 新文件: b
# 新文件: c
(5)git rm --cached *全部移除暂存区
[root@docker01 git_data]# git rm --cached *
rm 'a'
rm 'b'
rm 'c'
[root@docker01 git_data]# git status
# 位于分支 master
#
# 初始提交
#
# 未跟踪的文件:
# (使用 "git add <file>..." 以包含要提交的内容)
#
# a
# b
# c
提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)
(6)git commit提交到本地仓库
[root@docker01 git_data]# git add a
-m 后跟描述信息
[root@docker01 git_data]# git commit -m "add newfile a" a
[master(根提交) 7c6f6b4] add newfile a
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 a
[root@docker01 git_data]# git status
# 位于分支 master
# 未跟踪的文件:
# (使用 "git add <file>..." 以包含要提交的内容)
#
# b
# c
提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)
a文件已提交到本地仓库
[root@docker01 git_data]# ll -a .git/objects/
总用量
drwxr-xr-x 7 root root 60 7月 20 17:39 .
drwxr-xr-x 8 root root 166 7月 20 17:41 ..
drwxr-xr-x 2 root root 52 7月 20 17:39 49
drwxr-xr-x 2 root root 52 7月 20 17:39 7c
drwxr-xr-x 2 root root 52 7月 20 17:03 e6
drwxr-xr-x 2 root root 6 7月 20 16:25 info
drwxr-xr-x 2 root root 6 7月 20 16:25 pack
(7)git mv重命名
方法一:
[root@docker01 git_data]# mv a a.txt
[root@docker01 git_data]# git status
# 位于分支 master
# 尚未暂存以备提交的变更:
# (使用 "git add/rm <file>..." 更新要提交的内容)
# (使用 "git checkout -- <file>..." 丢弃工作区的改动)
#
# 删除: a
#
# 未跟踪的文件:
# (使用 "git add <file>..." 以包含要提交的内容)
#
# a.txt
# b
# c
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
[root@docker01 git_data]# git checkout -- a
[root@docker01 git_data]# ll
总用量
-rw-r--r-- 1 root root 0 7月 20 18:07 a
-rw-r--r-- 1 root root 2 7月 20 17:45 a.txt
-rw-r--r-- 1 root root 0 7月 20 17:00 b
-rw-r--r-- 1 root root 0 7月 20 17:00 c
方法二:
[root@docker01 git_data]# git mv a a.txt
[root@docker01 git_data]# git status
# 位于分支 master
# 要提交的变更:
# (使用 "git reset HEAD <file>..." 撤出暂存区)
#
# 重命名: a -> a.txt
#
# 未跟踪的文件:
# (使用 "git add <file>..." 以包含要提交的内容)
#
# b
# c
[root@docker01 git_data]# git commit -m "mv a a.txt" a.txt
[master 45537d0] mv a a.txt
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 a.txt
[root@docker01 git_data]# git status
# 位于分支 master
# 未跟踪的文件:
# (使用 "git add <file>..." 以包含要提交的内容)
#
# b
# c
提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)
(8)git diff查看内容的不同
[root@docker01 git_data]# echo 111 > a.txt
[root@docker01 git_data]# git diff a.txt
diff --git a/a.txt b/a.txt
index e69de29..58c9bdf 100644
--- a/a.txt
+++ b/a.txt
@@ -0,0 +1 @@
+111
git diff比较当前目录与暂存区的变化
[root@docker01 git_data]# git diff --cached a.txt
git diff --cached比较暂存区与本地仓库的不同
(9)git log查看历史的git commit快照操作
[root@docker01 git_data]# git log
commit bcdd727442e9ff556fcf5bd29553cb5602935d56
Author: develop <xxxxxxxx@qq.com>
Date: Sat Jul 20 18:26:20 2019 +0800
modified add 111
commit 45537d0bb8ebad69fc704d0d180d5cd27e2d36e5
Author: develop <xxxxxxxx@qq.com>
Date: Sat Jul 20 18:13:56 2019 +0800
mv a a.txt
commit 976a0cc437312f6b6be68574b36ac5e7b358223b
Author: develop <xxxxxxxx@qq.com>
Date: Sat Jul 20 18:12:23 2019 +0800
mv a a.txt
commit 7c6f6b4e4edbd8ee45ff9289c9a2223aae068752
Author: develop <xxxxxxxx@qq.com>
Date: Sat Jul 20 17:39:45 2019 +0800
add newfile a
简单显示log信息
[root@docker01 git_data]# git log --oneline
bcdd727 modified add 111
45537d0 mv a a.txt
976a0cc mv a a.txt
7c6f6b4 add newfile a
[root@docker01 git_data]# git log --oneline --decorate
bcdd727 (HEAD, master) modified add 111
45537d0 mv a a.txt
976a0cc mv a a.txt
7c6f6b4 add newfile a
显示具体操作
[root@docker01 git_data]# git log -p
commit bcdd727442e9ff556fcf5bd29553cb5602935d56
Author: develop <xxxxxxxxx@qq.com>
Date: Sat Jul 20 18:26:20 2019 +0800
modified add 111
diff --git a/a.txt b/a.txt
index e69de29..58c9bdf 100644
--- a/a.txt
+++ b/a.txt
@@ -0,0 +1 @@
+111
commit 45537d0bb8ebad69fc704d0d180d5cd27e2d36e5
Author: develop <xxxxxxxxx@qq.com>
Date: Sat Jul 20 18:13:56 2019 +0800
mv a a.txt
diff --git a/a.txt b/a.txt
new file mode 100644
index 0000000..e69de29
commit 976a0cc437312f6b6be68574b36ac5e7b358223b
Author: develop <xxxxxxxxx@qq.com>
Date: Sat Jul 20 18:12:23 2019 +0800
mv a a.txt
diff --git a/a b/a
deleted file mode 100644
index e69de29..0000000
commit 7c6f6b4e4edbd8ee45ff9289c9a2223aae068752
Author: develop <xxxxxxxxx@qq.com>
Date: Sat Jul 20 17:39:45 2019 +0800
add newfile a
diff --git a/a b/a
new file mode 100644
index 0000000..e69de29
显示最近1条日志
[root@docker01 git_data]# git log -1
commit bcdd727442e9ff556fcf5bd29553cb5602935d56
Author: develop <xxxxxxxx@qq.com>
Date: Sat Jul 20 18:26:20 2019 +0800
modified add 111
- git reset HEAD本地仓库覆盖暂存区