Git 基本概念

news2025/1/11 2:28:36

一、git 官网

https://git-scm.com/

二、git 数据传输命令

在这里插入图片描述

三、基本操作

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 you@example.com

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

    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 you@example.com

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

    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 you@example.com

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

    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 you@example.com

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

    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 you@example.com

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

    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的使用

九、其他

其他信息见官方文档。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/146334.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

你知道微服务架构中的“发件箱模式”吗

前言 微服务架构如今非常的流行&#xff0c;这个架构下可能经常会遇到“双写”的场景。双写是指您的应用程序需要在两个不同的系统中更改数据的情况&#xff0c;比如它需要将数据存储在数据库中并向消息队列发送事件。您需要保证这两个操作都会成功。如果两个操作之一失败&…

数据结构与算法—稀疏数组

稀疏数组 稀疏数组与二维数组 当一个数组中大部分元素都是0&#xff0c;或者为同一个值的数组时&#xff0c;可以使用稀疏数组来保存该数组。 二维数组转成稀疏数组&#xff1a; 从图中可以看出&#xff1a; 稀疏数组的行、列、值的 &#xff08;1&#xff09;[0]行&#x…

linux下软硬链接到底是什么?

文章目录前言硬链接软链接前言 在了解软硬链接之前&#xff0c;可以先来了解一下磁盘以及inode到底是什么 Linux文件管理—磁盘上文件如何管理&#xff08;inode&#xff09; 硬链接 什么是硬链接 在Linux下&#xff0c;系统标识文件的唯一方式就是inode号&#xff0c;而对…

【初阶数据结构】——双“指针”求解数组常见问题

文章目录前言题目1&#xff1a;移除元素思路1&#xff1a;暴力求解思路2&#xff1a;时间换空间思路3&#xff1a;双指针原地删除&#xff08;解法2的再优化&#xff09;思路分析代码实现题目2&#xff1a;删除有序数组中的重复项思路&#xff1a;双指针代码实现题目3&#xff…

【JavaScript】BOM 学习总结

基础知识&#xff1a; 获取浏览器窗口的尺寸&#xff1a; innerHeight&#xff1a;获取高度 innerWidth&#xff1a;获取宽度 跳转与刷新 location.href location.reload() body><button id"btn">跳转到下一个页面</button><button id"btn…

Java实现文件操作

目录 一、文件概述 二、常见文件操作 1、获取文件路径 2、判断文件存在以及判断类型 3、文件的创建与删除 4、展示文件夹的文件 5、创建文件夹 三、用数据流来读取文件内容 1、操作字节流文件 a、读取字节流文件 b、写字节流文件 2、操作字符流对象 a、读取…

C++ · 入门 · 03 | 函数重载

啊我摔倒了..有没有人扶我起来学习.... 目录前言函数重载1.1 函数重载概念1.2 函数重载的意义1.3 C支持函数重载的原理--名字修饰(name Mangling)1.4 返回值不同能否构成函数重载?前言 自然语言中&#xff0c;一个词可以有多重含义&#xff0c;人们可以通过上下文来判断该词真…

小米 2021 秋招面试总结

岗位:嵌入式软件工程师(相机驱动岗) 面试时间: 40 分钟 薪资: 28w+ 面试过程 面试官上来先来了一段他自己的自我介绍,流程还是比较规范的。 1、请进行一个简单的自我介绍(2分钟) 2、C语言全局变量可否定义在头文件中? 回答:不能,并且这不是一个好的习惯。 3…

【自学C++】C++输出cout

C输出cout C输出cout教程 在 C 语言 中我们需要输出一个 变量&#xff0c;可以使用 printf。printf 函数 在输出时&#xff0c;我们必须要指定输出的数据类型对应的格式化符&#xff0c;挺不方便。 在 C 中&#xff0c;我们要输出变量&#xff0c;直接使用 std 命名空间中的…

国科大抢课避坑+选课指南+教务系统操作

博客园&#xff1a; https://www.cnblogs.com/phoenixash/p/13669461.html 9月12日12&#xff1a;30&#xff0c;本菜鸡终于经历了国科大传说中的抢课大战&#xff0c;虽然自己之前准备的较多&#xff0c;但还是在抢课的时候掉进了不少坑里&#xff0c;趁现在还记忆犹新&#x…

【pandas】教程:10-文本数据的操作

Pandas 文本数据的操作 本节使用的数据为 data/titanic.csv&#xff0c;链接为 pandas案例和教程所使用的数据-机器学习文档类资源-CSDN文库 读入数据 import pandas as pd titanic pd.read_csv("data/titanic.csv")PassengerId Survived Pclass \ 0 …

指针进阶(2)

Tips 1. 2. 3. 碰到地址就等价于指针变量&#xff0c;里面存放着该地址的指针变量 4. 数组指针是存放数组的地址&#xff0c;指向的是一个数组&#xff1b;函数指针存放的是函数的地址&#xff0c;指向的是一个函数。 5. 地址就是指针&#xff0c;地址就是指针 6. 数…

LeetCode 138. 复制带随机指针的链表(C++)

思路&#xff1a; 用哈希表实现&#xff0c;创建一个哈希表来对应原链表中的每一个节点&#xff0c;这样也可以将原链表中的所有结点的next和random关系映射到哈希表复制链表中。 原题链接&#xff1a;https://leetcode.cn/problems/copy-list-with-random-pointer/description…

1658. 将 x 减到 0 的最小操作数

解法一&#xff1a;双指针 首先&#xff0c;每次操作可以移除数组 nums 最左边或最右边的元素&#xff0c;那么相当于求出l和rl和rl和r使得[0,l][r,n−1][0, l][r,n-1][0,l][r,n−1]之间所有元素之和等于xxx,并且元素个数最少。我们可以通过双重循环枚举l和r变量l和r变量l和r变…

马哥架构第1周课程作业

马哥架构第1周课程作业一. 画图解释一次web请求的过程。涉及tcp/ip, dns, nginx&#xff0c;wsgi。二. 编译安装nginx, 详细解读常用参数。三. 基于nginx完成动静分离部署 lamp。php到后端php-fpm, static/ 在nginx本地。3.1 配置 nginx 实现反向代理的动静分离3.2 准备后端 ht…

equals和==的区别

目录 1.基本数据类型和引用数据类型的说明 2. 3.equals 1.基本数据类型和引用数据类型的说明 基本数据类型&#xff1a;byte&#xff0c;short&#xff0c;int&#xff0c;long&#xff0c;float&#xff0c;double&#xff0c;char&#xff0c;boolean。 对应的默认值&…

2-4进程管理-死锁

文章目录一.死锁的概念二.死锁的处理策略1.死锁预防&#xff1a;破坏必要条件&#xff0c;让死锁无法发生2.避免死锁&#xff1a;在动态分配资源的过程中&#xff0c;用一些算法防止系统进入不安全状态&#xff08;1&#xff09;银行家算法&#xff08;2&#xff09;系统安全状…

Java if else分支结构精讲

Java 支持两种选择语句&#xff1a;if 语句和 switch 语句。其中 if 语句使用布尔表达式或布尔值作为分支条件来进行分支控制&#xff0c;而 switch 语句则用于对多个整型值进行匹配&#xff0c;从而实现分支控制。这些语句允许你只有在程序运行时才能知道其状态的情况下&#…

2022:不恋过往,不畏将来

一、开篇 少年有山海&#xff0c;踏过皆繁华。岁月不居&#xff0c;时节如流&#xff0c;时间在指尖悄悄流逝&#xff0c;人生即将翻开新的一年的篇章。2022年&#xff0c;注定是一个不平凡的年份&#xff0c;这一年&#xff0c;我们从关心世界到关心国家&#xff0c;最后关心自…

2023年12306购票平台自动化购票二|解决车次查找与预定

目录 一、说明 1.1、背景 1.2、说明 二、步骤 2.1、点击去购票 2.2、在搜索框中输入车次信息 2.3、点击查找 2.4、出现车次信息&#xff0c;进行筛选&#xff0c;如果有票则点击计入预定车票界面 三、结果 四、小节 一、说明 1.1、背景 接上文&#xff0c;春运抢不到…