1.创建数据-提交数据

Git常规操作_git


2.git四种状态

Git常规操作_git_02


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

  1. git reset HEAD本地仓库覆盖暂存区