【Git】02 仓库、区域与基本操作


文章目录


一、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

五、总结

本文的几个点在日常学习工作中是会经常用到的:创建仓库、添加至暂存区、提交版本,这几个步骤是在项目的版本管理中必不可少的环节,需常用常记。版本历史也很重要,能快速掌握项目的迭代动向。

相关推荐
high20119 小时前
【Git】-- 版本说明
git
kaixin_learn_qt_ing10 小时前
git clone
git
sin220110 小时前
git stash
git
喝鸡汤10 小时前
一起学Git【第二节:创建版本库】
git
慢慢成长的码农10 小时前
git 同步分支操作
git
sin220110 小时前
git推送本地仓库到远程(Gitee)
git·gitee
丁总学Java11 小时前
git branch -r(--remotes )显示你本地仓库知道的所有 远程分支 的列表
git
yylの博客14 小时前
Windows通过git-bash安装zsh
windows·git·bash·zsh
丁总学Java15 小时前
(Z Shell)zsh: no matches found: ? 使用单引号包裹
git·zsh
萌狼蓝天15 小时前
【NAS】绿联NAS+极狐Gitlab+1Panel
git