GIT03_初始化init查看状态status添加add删除rmcommit提交历史版本reflog忽略文件gitignore
Posted TZ845195485
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GIT03_初始化init查看状态status添加add删除rmcommit提交历史版本reflog忽略文件gitignore相关的知识,希望对你有一定的参考价值。
文章目录
命令名称(常用命令) | 作用 |
---|---|
git config --global user.name 用户名 | 设置用户签名 |
git config --global user.email 邮箱 | 设置用户签名 |
git init | 初始化本地库 |
git status | 查看本地库状态 |
git add 文件名 | 添加到暂存区 |
git commit -m “日志信息” 文件名 | 提交到本地库 |
git reflog | 查看历史记录 |
git reset --hard 版本号 | 版本穿梭 |
①. 工作目录、暂存区、版本库概念
-
①. 版本库(本地仓库):前面看到的.git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等
-
②. 工作目录(工作区):包含.git文件夹的目录就是工作目录,主要用于存放开发的代码
-
③. 暂存区:.git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方
②. 设置用户签名
- ①. 基本语法
git config --global user.name 用户名
git config --global user.email 邮箱
(1).设置用户信息
git config --global user.name “xiaozhi”
git config --global user.email “845195485@qq.com”
(2).查看不同级别的配置信息
# 查看系统config
git config --system --list
# 查看当前用户(global)配置
git config --global --list
通过上面的命令设置的信息会保存在C:\\Users\\Administrator\\.gitconfig文件中
-
②. 签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。Git 首次安装必须设置一下用户签名,否则无法提交代码
-
③. 注意 这里设置用户签名和将来登录GitHub(其他代码托管中心)的账号没有任何关系
③. 初始化坏境配置 init
-
①. 在电脑的任意位置创建一个空目录(例如repo1)作为我们的本地Git仓库
-
②. 进入这个目录中,点击右键打开Git bash窗口
-
③. 执行命令git init
如果在当前目录中看到.git文件夹(此文件夹为隐藏文件夹)则说明Git仓库创建成功
④. 查看文件状态 status
-
①. git status 查看文件状态
-
②. 也可以使用git status –s 使输出信息更加简洁
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ vim a.txt
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ vim a.txt
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
a.txt
nothing added to commit but untracked files present (use "git add" to track)
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ git status -s
?? a.txt
⑤. 添加到暂存区、撤回到工作目录 add|reset
-
①. git add 将未跟踪的文件加入暂存区(将新创建的文件加入暂存区后查看文件状态)
-
②. git add .(.代表所有新增、修改)
-
③. git add -A( -A 新增、修改、删除)推荐使用
-
④. git reset 将暂存区的文件取消暂存(将文件取消暂存后查看文件状态)
$ git add a.txt
warning: LF will be replaced by CRLF in a.txt.
The file will have its original line endings in your working directory
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ git status
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: a.txt
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ git reset a.txt
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
a.txt
nothing added to commit but untracked files present (use "git add" to track)
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
⑥. 删除文件 rm
-
①. git rm 删除文件(删除的是提交到本地库的文件)
注意:上面删除的只是工作区的文件,需要提交到本地仓库 -
②. 如下代码删除后,我们需要重新进行commit操作
$ git add b.txt
warning: LF will be replaced by CRLF in b.txt.
The file will have its original line endings in your working directory
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ git commit -m "b.txt" b.txt
warning: LF will be replaced by CRLF in b.txt.
The file will have its original line endings in your working directory
[master 4ae6a0c] b.txt
1 file changed, 1 insertion(+)
create mode 100644 b.txt
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ git status
On branch master
nothing to commit, working tree clean
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ git rm b.txt
rm 'b.txt'
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ git status
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
deleted: b.txt
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ git status
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
deleted: b.txt
# 注意这里需要重新提交操作
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ git commit -m "delete b.txt"
[master d39bee4] delete b.txt
1 file changed, 1 deletion(-)
delete mode 100644 b.txt
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ git status
On branch master
nothing to commit, working tree clean
⑦. 提交到版本库、形成历史版本 commit
-
①. git commit -m “日志信息” 文件名(272a9cd这个是版本号)
-
②. 从工作目录一步提交到版本库:git commit -am ‘new project’(加入缓存区并提交[一步到位])
$ git add -A
warning: LF will be replaced by CRLF in a.txt.
The file will have its original line endings in your working directory
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ git status
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: a.txt
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ git commit -m "第一次提交 a.txt" a.txt
warning: LF will be replaced by CRLF in a.txt.
The file will have its original line endings in your working directory
[master (root-commit) 272a9cd] 第一次提交 a.txt
1 file changed, 9 insertions(+)
create mode 100644 a.txt
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ git status
On branch master
nothing to commit, working tree clean
⑧. 历史版本 reflog log
- ①. 查看历史版本(git reflog 查看版本信息 | git log 查看版本详细信息)
$ git reflog
272a9cd (HEAD -> master) HEAD@{0}: commit (initial): 第一次提交 a.txt
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ git log
commit 272a9cde6cd70ec607687b6ce161fc46f8b9de2b (HEAD -> master)
Author: o-tangzhi <o-tangzhi@ghac.cn>
Date: Sun May 16 17:10:35 2021 +0800
第一次提交 a.txt
- ②. 版本穿梭(git reset --hard 版本号)
我们在a.txt最后添加了第二次版本
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: a.txt
no changes added to commit (use "git add" and/or "git commit -a")
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ git add -A
warning: LF will be replaced by CRLF in a.txt.
The file will have its original line endings in your working directory
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ git commit -m "第二次提交了" a.txt
warning: LF will be replaced by CRLF in a.txt.
The file will have its original line endings in your working directory
[master c5d3d8a] 第二次提交了
1 file changed, 1 insertion(+)
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ git log
commit c5d3d8a380a444650db481f6ea2b84a0a0371716 (HEAD -> master)
Author: o-tangzhi <o-tangzhi@ghac.cn>
Date: Sun May 16 17:16:19 2021 +0800
第二次提交了
commit 272a9cde6cd70ec607687b6ce161fc46f8b9de2b
Author: o-tangzhi <o-tangzhi@ghac.cn>
Date: Sun May 16 17:10:35 2021 +0800
第一次提交 a.txt
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ git reflog
c5d3d8a (HEAD -> master) HEAD@{0}: commit: 第二次提交了
272a9cd HEAD@{1}: commit (initial): 第一次提交 a.txt
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ git reset --hard 272a9cd # 注意这里切换到了第一次版本提交
HEAD is now at 272a9cd 第一次提交 a.txt
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ git reflog
272a9cd (HEAD -> master) HEAD@{0}: reset: moving to 272a9cd
c5d3d8a HEAD@{1}: commit: 第二次提交了
272a9cd (HEAD -> master) HEAD@{2}: commit (initial): 第一次提交 a.txt
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
# 注意这里切换到第二次
$ git reset --hard c5d3d8a
HEAD is now at c5d3d8a 第二次提交了
$ cat a.txt
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
第二次版本迭代
⑨. Git工作目录下文件的两种状态
-
①. untracked 未跟踪(未被纳入版本控制)
-
②. tracked 已跟(被纳入版本控制)
Unmodified 未修改状态
Modified 已修改状态
Staged 已暂存状态
这些文件的状态会随着我们执行Git的命令发生变化
⑩. .gitignore
# no .a files :.a结尾的都要忽略
*.a
# !lib.a 不需要忽略
!lib.a
# /TODO的这个文件需要忽略
/TODO
# build目录下所有的文件都忽略
build/
# doc目录下以.txt文件的都要忽略
doc/*.txt
# doc目录下所有或子目录下所有的.pdf文件都要忽略
doc/**/*.pdf
以上是关于GIT03_初始化init查看状态status添加add删除rmcommit提交历史版本reflog忽略文件gitignore的主要内容,如果未能解决你的问题,请参考以下文章
GitGit 基础命令 ( 添加暂存文件 git add | 提交文件至版本库 git commit | 查看版本库状态 git status | 查询文件修改 git diff )
GitGit 基础命令 ( 添加暂存文件 git add | 提交文件至版本库 git commit | 查看版本库状态 git status | 查询文件修改 git diff )
20180616_Git???????????????1(init???status???add ??? commit)