文章目录
- 一、Git仓库
- 二、Git区域
- 三、操作
-
- [3.1 git add](#3.1 git add)
- [3.2 更改文件名](#3.2 更改文件名)
- [3.3 清空暂存区](#3.3 清空暂存区)
- [3.4 帮助文档](#3.4 帮助文档)
- 四、版本历史
-
- [4.1 日志时间格式](#4.1 日志时间格式)
- [4.2 查看版本演变历史](#4.2 查看版本演变历史)
- 五、总结
一、Git仓库
Git仓库,可简单理解为项目代码存放的位置,Git将该项目目录中的内容纳入版本管理。
创建Git仓库,有如下两种场景:
1)把已有的项目代码纳入Git管理(在指定项目目录内初始化)
shell
cd 项目代码所在的目录 # 进入到项目内
git init
2)新建项目直接用Git管理(初始化创建某个项目)
shell
cd 某个文件夹
git init project_name # 在当前目录下创建项目文件夹
cd project_name
# 设置项目本地local用户信息,其优先级大于global
git config --local user.name 'username'
git config --local user.email 'user@qq.com'
二、Git区域
Git区域分为:工作区、暂存区和版本历史
- 工作区:正常编辑修改文件的区域
- 暂存区:通过
git add
将文件添加到暂存区 - 版本历史:将暂存区里的内容commit到的区域
下面以文件readme
来做简单示例。
文件创建以及添加内容时,就处在工作区,此时文件还未被管理;
通过git add
命令将文件添加到暂存区,即该文件被Git纳入管理;
通过git status
命令可查看当前目录中文件的纳管状态;
通过git commit
将暂存区中的内容提交至版本历史中,-m 'desc'
是添加描述;
通过git log
查看当前仓库的版本历史,就是显示之前commit提交的信息,但只显示和HEAD指向分支相关的commit。
shell
git add readme # 将指定的readme文件放入暂存区
git status # 查看git状态,提示有个新文件readme被纳入管理,即暂存区
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: readme
git commit -m 'add readme' # 将暂存区的内容提交至版本历史中
[master (root-commit) b36e3b7] add readme
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 readme
git log # 查看版本历史,显示刚刚操作的commit记录
commit b36e3b75d6129902a7251ec74b5a14b521c16839 (HEAD -> master)
Author: asdfv1929 <asdfv1929@163.com>
Date: Mon Aug 1 13:17:59 2022 +0800
add readme
三、操作
3.1 git add
shell
git add file1 file2 # 同时添加多个文件到暂存区
git add dirname # 添加目录(包括其中的文件)到暂存区,空目录不行
git add . # 将仓库内所有涉及修改、新建的文件添加到暂存区(git 2.X版本后,等同于-A)
git add -u # 将文件的修改、删除,添加到暂存区(即将已被git跟踪纳管的文件添加到暂存区)
git add -A # 将文件的新建、修改、删除,添加到暂存区
git add -all # 等同于 -A
3.2 更改文件名
1)常规操作
常见操作是,先重命名文件,之后git add
将其添加至暂存区,最后删除旧文件名
shell
mv readme readme.md
git status
git add readme.md
git rm readme
2)git方式重命名文件
shell
git mv readme readme.md
git commit -m 'mv name'
大小写区分:
shell
git mv readme Readme
git status
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: Readme
3.3 清空暂存区
shell
git reset --hard
git status
On branch master
No commits yet
nothing to commit (create/copy files and use "git add" to track)
3.4 帮助文档
shell
git help --web log # 网页查看帮助文档log
四、版本历史
4.1 日志时间格式
shell
git log
commit 1395813160b9b8f42f8a42f84eb7845fdfaf0424 (HEAD -> master)
Author: asdfv1929@163.com <asdfv1929@163.com>
Date: Wed Nov 8 15:29:01 2023 +0800
add readme
git log --date=format:%Y-%m-%d\ %H:%M:%S
commit 1395813160b9b8f42f8a42f84eb7845fdfaf0424 (HEAD -> master)
Author: asdfv1929@163.com <asdfv1929@163.com>
Date: 2023-11-08 15:29:01
add readme
git log --date=iso
commit 1395813160b9b8f42f8a42f84eb7845fdfaf0424 (HEAD -> master)
Author: asdfv1929@163.com <asdfv1929@163.com>
Date: 2023-11-08 15:29:01 +0800
add readme
git log --date=short
commit 1395813160b9b8f42f8a42f84eb7845fdfaf0424 (HEAD -> master)
Author: asdfv1929@163.com <asdfv1929@163.com>
Date: 2023-11-08
add readme
git log --pretty="%H" --committer="asdfv1929" --after="2020-01-01" --before="2023-12-30"
1395813160b9b8f42f8a42f84eb7845fdfaf0424
git log --pretty="%H" --committer="asdfv1929" --after="2020-01-01" --before="2023-12-30" | while read commit_hash; do git show --oneline --name-only $commit_hash | tail -n+2; done
readme
4.2 查看版本演变历史
shell
# 以单行形式显示版本历史,只显示编号、信息
git log --oneline
b36e3b7 (HEAD -> master) add readme
# -n4,显示最新4条历史信息
git log -n4 --oneline
b36e3b7 (HEAD -> master) add readme
# 新建分支,可基于commit哈希ID或已有分支名称
git checkout -b temp 7d1a828cc # 7d1a828cc是commit编号的前面一部分,即从该commit提交点新建分支出来,命名为temp
# 查看分支信息
git branch -v
master c7ce7a1 add css
* temp a6db737 add branch
# 查看所有,git log默认只显示当前分支的所有commit信息,若想查看所有分支的log,则需加上--all选项
git log --all
git log --oneline --all -4 --graph
# 以图形查看所有分支走向,如下图(路径走向由不同颜色标明)
git log --all --graph
五、总结
本文的几个点在日常学习工作中是会经常用到的:创建仓库、添加至暂存区、提交版本,这几个步骤是在项目的版本管理中必不可少的环节,需常用常记。版本历史也很重要,能快速掌握项目的迭代动向。