Git 基本概念

一、git 官网

https://git-scm.com/

二、git 数据传输命令

Git 基本概念_第1张图片

三、基本操作

1、命令整理

命令 说明
git init 初始化 git 库
git config 获取和设置存储库或全局配置项
git status 显示工作树状态
git add 将文件内容添加到index(暂存区)
git commit 将index(暂存区)修改提交到本地仓库
git diff 显示更改内容
git log 查看提交日志
git reset 重置当前HEAD到指定状态
git reflog 查看命令历史
git checkout 恢复工作树文件
git rm 从工作树和索引中删除文件
git mv 移动或重命名文件、目录或符号链接
git note 对 commit 内容进行追加
git restore 把文件从缓存区撤销,回到未被追踪的状态(低版本可能不支持)
git submodule 初始化、更新或检查子模块
git show 命令用于显示各种类型的对象
git difftool 使用常用的 diff 工具显示更改
git shortlog 汇总git日志输出
git describe 根据可用的引用给对象一个人类可读的名称
git apply 对文件和/或索引应用补丁
git cherry-pick 将指定的提交(commit)应用于其他分支
git rebase 在另一个基本提示上重新应用提交
git revert 撤销一些现有的提交

2、git init

nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ ls -la
总用量 8
drwxrwxrwx 1 root root    0 14 15:48 .
drwxrwxrwx 1 root root 8192 14 15:48 ..
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git init
已初始化空的 Git 仓库于 /media/nfs_dev_sda2/code/git-demo/.git/
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ ls -la
总用量 8
drwxrwxrwx 1 root root  144 14 15:52 .
drwxrwxrwx 1 root root 8192 14 15:48 ..
drwxrwxrwx 1 root root  448 14 15:52 .git
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ tree -a .git/
.git/
├── branches
├── config
├── description
├── HEAD
├── hooks
│   ├── applypatch-msg.sample
│   ├── commit-msg.sample
│   ├── post-update.sample
│   ├── pre-applypatch.sample
│   ├── pre-commit.sample
│   ├── prepare-commit-msg.sample
│   ├── pre-push.sample
│   ├── pre-rebase.sample
│   ├── pre-receive.sample
│   └── update.sample
├── info
│   └── exclude
├── objects
│   ├── info
│   └── pack
└── refs
    ├── heads
    └── tags

9 directories, 14 files
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 

.git的目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。

2、git config

3、git status

nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ ls -la
总用量 8
drwxrwxrwx 1 root root  144 14 16:03 .
drwxrwxrwx 1 root root 8192 14 15:48 ..
drwxrwxrwx 1 root root  448 14 16:03 .git
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git status
位于分支 master

初始提交

无文件要提交(创建/拷贝文件并使用 "git add" 建立跟踪)
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ vim readme.txt
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ cat readme.txt 
1234567890
qwertyuiop
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git status
位于分支 master

初始提交

未跟踪的文件:
  (使用 "git add <文件>..." 以包含要提交的内容)

	readme.txt

提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 

4、git add

nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ ls -la
总用量 9
drwxrwxrwx 1 root root  248 14 16:07 .
drwxrwxrwx 1 root root 8192 14 15:48 ..
drwxrwxrwx 1 root root  448 14 16:07 .git
-rwxrwxrwx 1 root root   22 14 16:07 readme.txt
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git status
位于分支 master

初始提交

未跟踪的文件:
  (使用 "git add <文件>..." 以包含要提交的内容)

	readme.txt

提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git add readme.txt 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git status
位于分支 master

初始提交

要提交的变更:
  (使用 "git rm --cached <文件>..." 以取消暂存)

	新文件:   readme.txt

nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$

5、git commit

nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ ls -la
总用量 9
drwxrwxrwx 1 root root  248 14 16:07 .
drwxrwxrwx 1 root root 8192 14 15:48 ..
drwxrwxrwx 1 root root  448 14 16:08 .git
-rwxrwxrwx 1 root root   22 14 16:07 readme.txt
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git status
位于分支 master

初始提交

要提交的变更:
  (使用 "git rm --cached <文件>..." 以取消暂存)

	新文件:   readme.txt

nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git commit -m "向本地仓库添加文件"
[master(根提交) 308acfd] 向本地仓库添加文件
 Committer: nfs <nfs@cbs-06>
您的姓名和邮件地址基于登录名和主机名进行了自动设置。请检查它们正确
与否。您可以对其进行设置以免再出现本提示信息:

    git config --global user.name "Your Name"
    git config --global user.email [email protected]

设置完毕后,您可以用下面的命令来修正本次提交所使用的用户身份:

    git commit --amend --reset-author

 1 file changed, 2 insertions(+)
 create mode 100644 readme.txt
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git status
位于分支 master
无文件要提交,干净的工作区
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 

6、git diff

nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ ls -la
总用量 9
drwxrwxrwx 1 root root  248 14 16:07 .
drwxrwxrwx 1 root root 8192 14 15:48 ..
drwxrwxrwx 1 root root  448 14 16:10 .git
-rwxrwxrwx 1 root root   22 14 16:07 readme.txt
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git diff readme.txt
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ cat readme.txt 
1234567890
qwertyuiop
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ vim readme.txt 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ cat readme.txt 
1234567890
qwertyuiop
zxcvbnm
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git diff
diff --git a/readme.txt b/readme.txt
index 0df4468..168c10b 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,3 @@
 1234567890
 qwertyuiop
+zxcvbnm
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 

7、git log

nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ ls -la
总用量 9
drwxrwxrwx 1 root root  248 14 16:14 .
drwxrwxrwx 1 root root 8192 14 15:48 ..
drwxrwxrwx 1 root root  448 14 16:19 .git
-rwxrwxrwx 1 root root   30 14 16:14 readme.txt
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git log
commit 7dd5a40a1a02d4d97ee10e20ec286073ed6933be
Author: nfs <nfs@cbs-06>
Date:   Wed Jan 4 16:19:51 2023 +0800

    修改readme.txt

commit 308acfdd2a4dca9e93c5c1c3eae6c9ef9d824a55
Author: nfs <nfs@cbs-06>
Date:   Wed Jan 4 16:10:33 2023 +0800

    向本地仓库添加文件
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 

8、git reset

nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ ls -la
总用量 9
drwxrwxrwx 1 root root  248 14 16:26 .
drwxrwxrwx 1 root root 8192 14 15:48 ..
drwxrwxrwx 1 root root  448 14 16:27 .git
-rwxrwxrwx 1 root root   30 14 16:26 readme.txt
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ cat readme.txt 
1234567890
qwertyuiop
zxcvbnm
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git status
位于分支 master
无文件要提交,干净的工作区
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git log
commit ed6b93d4c81ecd11351c72cfd74996bce9f68e94
Author: nfs <nfs@cbs-06>
Date:   Wed Jan 4 16:27:11 2023 +0800

    修改readme.txt

commit 308acfdd2a4dca9e93c5c1c3eae6c9ef9d824a55
Author: nfs <nfs@cbs-06>
Date:   Wed Jan 4 16:10:33 2023 +0800

    向本地仓库添加文件
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git reset --hard HEAD^
HEAD 现在位于 308acfd 向本地仓库添加文件
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git log
commit 308acfdd2a4dca9e93c5c1c3eae6c9ef9d824a55
Author: nfs <nfs@cbs-06>
Date:   Wed Jan 4 16:10:33 2023 +0800

    向本地仓库添加文件
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git status
位于分支 master
无文件要提交,干净的工作区
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ cat readme.txt 
1234567890
qwertyuiop
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 

9、git reflog

nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git reflog
308acfd HEAD@{0}: reset: moving to HEAD^
ed6b93d HEAD@{1}: commit: 修改readme.txt
308acfd HEAD@{2}: reset: moving to HEAD^
7dd5a40 HEAD@{3}: commit: 修改readme.txt
308acfd HEAD@{4}: commit (initial): 向本地仓库添加文件
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 

10、git checkout

1、概述

git checkout 就是让这个文件回到最近一次 git commit 或 git add 时的状态。

2、未放入暂存区

nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ ls -la
总用量 9
drwxrwxrwx 1 root root  248 14 16:41 .
drwxrwxrwx 1 root root 8192 14 15:48 ..
drwxrwxrwx 1 root root  448 14 16:41 .git
-rwxrwxrwx 1 root root   22 14 16:41 readme.txt
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ cat readme.txt 
1234567890
qwertyuiop
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git status
位于分支 master
无文件要提交,干净的工作区
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git diff readme.txt
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ vim readme.txt 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ cat readme.txt 
1234567890
qwertyuiop
asdfghjkl
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git diff readme.txt
diff --git a/readme.txt b/readme.txt
index 0df4468..17f84a2 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,3 @@
 1234567890
 qwertyuiop
+asdfghjkl
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git status
位于分支 master
尚未暂存以备提交的变更:
  (使用 "git add <文件>..." 更新要提交的内容)
  (使用 "git checkout -- <文件>..." 丢弃工作区的改动)

	修改:     readme.txt

修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git checkout -- readme.txt
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ cat readme.txt 
1234567890
qwertyuiop
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git diff readme.txt
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git status
位于分支 master
无文件要提交,干净的工作区
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 

3、已放入暂存区

1、第一步:使用 git reset HEAD <文件> 从暂存区撤销到工作区。

2、第二步:使用 git checkout -- <文件> 从工作区撤销。

nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ ls -la
总用量 9
drwxrwxrwx 1 root root  248 14 16:42 .
drwxrwxrwx 1 root root 8192 14 15:48 ..
drwxrwxrwx 1 root root  448 14 16:42 .git
-rwxrwxrwx 1 root root   22 14 16:42 readme.txt
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ cat readme.txt 
1234567890
qwertyuiop
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git status
位于分支 master
无文件要提交,干净的工作区
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ vim readme.txt 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git status
位于分支 master
尚未暂存以备提交的变更:
  (使用 "git add <文件>..." 更新要提交的内容)
  (使用 "git checkout -- <文件>..." 丢弃工作区的改动)

	修改:     readme.txt

修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git diff readme.txt
diff --git a/readme.txt b/readme.txt
index 0df4468..d61ee49 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,3 @@
+asdfghjkl
 1234567890
 qwertyuiop
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git add readme.txt 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git status
位于分支 master
要提交的变更:
  (使用 "git reset HEAD <文件>..." 以取消暂存)

	修改:     readme.txt

nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git diff readme.txt
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git reset HEAD readme.txt
重置后取消暂存的变更:
M	readme.txt
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git status
位于分支 master
尚未暂存以备提交的变更:
  (使用 "git add <文件>..." 更新要提交的内容)
  (使用 "git checkout -- <文件>..." 丢弃工作区的改动)

	修改:     readme.txt

修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git diff readme.txt
diff --git a/readme.txt b/readme.txt
index 0df4468..d61ee49 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,3 @@
+asdfghjkl
 1234567890
 qwertyuiop
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git checkout -- readme.txt
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git status
位于分支 master
无文件要提交,干净的工作区
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git diff readme.txt
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ cat readme.txt 
1234567890
qwertyuiop
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 

11、git rm

nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ ls -la
总用量 9
drwxrwxrwx 1 root root  248 14 16:50 .
drwxrwxrwx 1 root root 8192 14 15:48 ..
drwxrwxrwx 1 root root  448 14 16:50 .git
-rwxrwxrwx 1 root root   22 14 16:50 readme.txt
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ vim test.txt
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ cat test.txt 
0987654321
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git add test.txt 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git commit -m "添加 test.txt 文件"
[master ba92d87] 添加 test.txt 文件
 Committer: nfs <nfs@cbs-06>
您的姓名和邮件地址基于登录名和主机名进行了自动设置。请检查它们正确
与否。您可以对其进行设置以免再出现本提示信息:

    git config --global user.name "Your Name"
    git config --global user.email [email protected]

设置完毕后,您可以用下面的命令来修正本次提交所使用的用户身份:

    git commit --amend --reset-author

 1 file changed, 1 insertion(+)
 create mode 100644 test.txt
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ rm test.txt 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git status
位于分支 master
尚未暂存以备提交的变更:
  (使用 "git add/rm <文件>..." 更新要提交的内容)
  (使用 "git checkout -- <文件>..." 丢弃工作区的改动)

	删除:     test.txt

修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git rm test.txt
rm 'test.txt'
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git status
位于分支 master
要提交的变更:
  (使用 "git reset HEAD <文件>..." 以取消暂存)

	删除:     test.txt

nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git commit -m "删除 test.txt 文件"
[master 632f7be] 删除 test.txt 文件
 Committer: nfs <nfs@cbs-06>
您的姓名和邮件地址基于登录名和主机名进行了自动设置。请检查它们正确
与否。您可以对其进行设置以免再出现本提示信息:

    git config --global user.name "Your Name"
    git config --global user.email [email protected]

设置完毕后,您可以用下面的命令来修正本次提交所使用的用户身份:

    git commit --amend --reset-author

 1 file changed, 1 deletion(-)
 delete mode 100644 test.txt
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git status
位于分支 master
无文件要提交,干净的工作区
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 

12、git mv

nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ ls -la
总用量 8
drwxrwxrwx 1 root root  144 14 17:07 .
drwxrwxrwx 1 root root 8192 14 15:48 ..
drwxrwxrwx 1 root root  448 14 17:07 .git
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ vim readme.txt
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git status
位于分支 master

初始提交

未跟踪的文件:
  (使用 "git add <文件>..." 以包含要提交的内容)

	readme.txt

提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git add readme.txt 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git status
位于分支 master

初始提交

要提交的变更:
  (使用 "git rm --cached <文件>..." 以取消暂存)

	新文件:   readme.txt

nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git commit -m "添加readme.txt"
[master(根提交) fa6ca1e] 添加readme.txt
 Committer: nfs <nfs@cbs-06>
您的姓名和邮件地址基于登录名和主机名进行了自动设置。请检查它们正确
与否。您可以对其进行设置以免再出现本提示信息:

    git config --global user.name "Your Name"
    git config --global user.email [email protected]

设置完毕后,您可以用下面的命令来修正本次提交所使用的用户身份:

    git commit --amend --reset-author

 1 file changed, 2 insertions(+)
 create mode 100644 readme.txt
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git status
位于分支 master
无文件要提交,干净的工作区
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git log
commit fa6ca1e2e4b8b9684993231756ffedad683c8975
Author: nfs <nfs@cbs-06>
Date:   Wed Jan 4 17:08:21 2023 +0800

    添加readme.txt
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git mv readme.txt r.txt
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git status
位于分支 master
要提交的变更:
  (使用 "git reset HEAD <文件>..." 以取消暂存)

	重命名:   readme.txt -> r.txt

nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ ls
r.txt
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git commit -m "将readme.txt重命名为r.txt"
[master 2df24ea] 将readme.txt重命名为r.txt
 Committer: nfs <nfs@cbs-06>
您的姓名和邮件地址基于登录名和主机名进行了自动设置。请检查它们正确
与否。您可以对其进行设置以免再出现本提示信息:

    git config --global user.name "Your Name"
    git config --global user.email [email protected]

设置完毕后,您可以用下面的命令来修正本次提交所使用的用户身份:

    git commit --amend --reset-author

 1 file changed, 0 insertions(+), 0 deletions(-)
 rename readme.txt => r.txt (100%)
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git status
位于分支 master
无文件要提交,干净的工作区
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 

13、git note

nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ ls -la
总用量 9
drwxrwxrwx 1 root root  240 14 17:09 .
drwxrwxrwx 1 root root 8192 14 15:48 ..
drwxrwxrwx 1 root root  448 14 17:10 .git
-rwxrwxrwx 1 root root   22 14 17:07 r.txt
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git log
commit 2df24eae6c5aa4042d5b5de6c95c3e2149b51582
Author: nfs <nfs@cbs-06>
Date:   Wed Jan 4 17:10:04 2023 +0800

    将readme.txt重命名为r.txt

commit fa6ca1e2e4b8b9684993231756ffedad683c8975
Author: nfs <nfs@cbs-06>
Date:   Wed Jan 4 17:08:21 2023 +0800

    添加readme.txt
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git notes add 2df24eae6c5aa4042d5b5de6c95c3e2149b51582 -m "git notes测试"
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ git log
commit 2df24eae6c5aa4042d5b5de6c95c3e2149b51582
Author: nfs <nfs@cbs-06>
Date:   Wed Jan 4 17:10:04 2023 +0800

    将readme.txt重命名为r.txt

Notes:
    git notes测试

commit fa6ca1e2e4b8b9684993231756ffedad683c8975
Author: nfs <nfs@cbs-06>
Date:   Wed Jan 4 17:08:21 2023 +0800

    添加readme.txt
nfs@nfs-Vostro-3881:/media/nfs_dev_sda2/code/git-demo$ 

四、远程仓库

1、命令整理

命令 说明
git remote 本地仓库关联远程仓库
git push 本地仓库内容推送到远程仓库
git clone 将远程仓库克隆到本地
git fetch 从远程分支拉取代码
git pull 从远程获取代码并合并本地的版本

2、git remote

3、git push

4、git clone

五、分支管理

1、命令整理

命令 说明
git checkout 切换分支
git branch 列出、创建或删除分支
git merge 合并分支
git switch 切换分支
git stash 当前工作现场操作
git mergetool 运行合并冲突解决工具来解决合并冲突
git worktree 管理多个工作树

六、标签管理

1、命令整理

命令 说明
git tag 创建、列出、删除或验证用GPG签名的标记对象

七、调试

1、命令整理

命令 说明
git blame 显示修改者和作者最后修改了文件的每一行
git grep 打印与模式匹配的行

八、Git忽略文件.gitignore的使用

九、其他

其他信息见官方文档。

你可能感兴趣的:(git,git)