【Git学习】Git本地仓库基础命令

Git命令

首先需要创建版本库,在某个目录下新建一个testGit版本库,右键通过命令行的方式打开窗口

通过命令 git init 把这个目录变成git可以管理的仓库

Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

这时候当前testgit目录下会多了一个.git的目录,这个目录是Git来跟踪管理版本的,.git里面内容如下:

创建文件 test.txt 文件,此刻文件在工作区(WorkSpace)

通过 git status 可以查看文件追踪的情况,红色表示在工作区

使用命令 git add test.txt 添加到暂存区去

如果要提交多个文件,在add后面指定文件的列表 git add test1.txt test2.txt

一次提交多个文件至暂存区:

git add -A 提交所有变化至暂存区

git add -u 提交被修改和被删除文件,不包括新文件至暂存区

git add . 提交新文件和被修改文件,不包括被删除文件至暂存区,因为删除操作不进工作区直接进入暂存区

将文件撤销回至工作区

提交文件到主分支

git log 日志

修改操作会将文件退回到工作区

提交到仓库后查看日志和内容

git log --pretty=oneline 精简日志

回退到上一个版本 git reset --hard HEAD^ ,那么如果要回退到上上个版本只需把HEAD^ 改成 HEAD^^ 以此类推

通过sha1的前四位来做回退,git reset --hard 版本号

删除文件命令 git rm test2.txt,发现文件直接进入暂存区

如果想彻底从版本库中删掉了此文件的话,再执行 commit 命令提交

diff 命令

比较工作目录与暂存区 $ git diff

查看文件在工作目录与暂存区的差别,如果还没 add 进暂存区,则查看文件自身修改前后的差别。查看和另一分支的区别 $ git diff

比较暂存区与Git仓库 git diff --cached

表示查看已经 add 进暂存区但是尚未 commit 的内容同最新一次 commit 时的内容的差异。 也可以指定仓库版本 git diff --cached

工作目录 vs Git仓库 git diff

查看工作目录同Git仓库指定 commit 的内容的差异。=HEAD 时查看工作目录同最近一次 commit 的内容的差异。

Git仓库 vs Git仓库 git diff

Git仓库任意两次 commit 之间的差别。

以上命令可以不指定 filename,则对全部文件操作。以上命令涉及和 Git仓库对比的,均可指定 commit 的版本。

配置级别

在git中,我们使用 git config 命令用来配置git的配置文件,git配置级别主要有以下三类:

1、仓库级别 local 【优先级最高】

2、用户级别 global【优先级次之】

3、系统级别 system【优先级最低】

git 仓库级别对应的配置文件是当前仓库下的.git/config

在提示符中输入以下查看配置信息 git config --local -l

git 用户级别对应的配置文件是用户宿主目录下的 ~/.gitconfig

git config --global -l

git系统级别对应的配置文件是git安装目录下的 /etc/gitconfig

git config --system -l

演示修改用户名和邮箱,注意不要手动修改每个级别的配置文件,要使用命令的形式:

git config --global user.name "renliang"

git config --global user.email "renliang@126.com"

对于git来说,配置文件的权重是仓库>全局>系统。Git会使用这一系列的配置文件来存储用户定义的偏好,它首先会查找/etc/gitconfig文件(系统级),该文件含有对系统上所有用户及他们所拥有的仓库都生效的配置值。接下来Git会查找每个用户的~/.gitconfig文件(全局级)。最后Git会查找由用户定义的各个库中Git目录下的配置文件.git/config(仓库级),该文件中的值只对当前所属仓库有效。

.gitignore文件

在使用git的过程中,一般我们总会有些文件无需纳入git的管理,也不希望它们总出现在未跟踪文件列表,这些文件通常是日志文件、临时文件、编译产生的中间文件、工具自动生成的文件等等。

此时我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式,Git会根据这些模式规则来判断是否将文件添加到版本控制中。

注意:在windows下可以创建文件名为.gitignore.,保存之后系统会自动重命名为 .gitignore

格式规范

(1)所有空行或者以注释符号 # 开头的行都会被 Git 忽略

(2)可以使用标准的 glob 模式匹配

(3)匹配模式最后跟斜杠(/)说明要忽略的是目录

(4)要忽略指定模式以外的文件或目录,可以在模式前加上感叹号(!)进行取反

glob模式

所谓的 glob 模式是指 shell 所使用的简化了的正则表达式,匹配规则如下:

"*":星号匹配零个或多个任意字符

\]:匹配任何一个列在方括号中的字符,如\[ab\]匹配a或者匹配b "?":问号匹配一个任意字符 \[n-m\]:匹配所有在这两个字符范围内的字符,如\[0-9\]表示匹配所有0到9的数字 匹配示例 logs/: 忽略当前路径下的logs目录,包含logs下的所有子目录和文件 /logs.txt: 忽略根目录下的logs.txt文件 \*.class: 忽略所有后缀为.class的文件 !/classes/a.class:不忽略classes目录下的a.class文件 tmp/\*.txt: 只忽略tmp目录下的.txt文件 \*\*/foo: 可以忽略/foo, a/foo, a/b/foo等 在需要创建 .gitignore 文件的文件夹右键选择Git Bash 进入命令行,进入项目所在目录输入 touch .gitignore,那么在文件夹就生成了一个".gitignore"文件![](https://i-blog.csdnimg.cn/direct/3921c3d60f6c45b3b1281ba353dac1ae.png) 打开这个文件进行编辑,写规则来操作要忽略的文件 创建 Hello.java 文件,查看状态不在工作区,提交也不会进入暂存区![](https://i-blog.csdnimg.cn/direct/65803546be0f45928bebe704d43f2d40.png) 除了可以在项目中定义.gitignore文件外,还可以设置全局的.gitignore文件来管理所有Git项目的行为,这种方式在不同的项目开发者之间是不共享的,是属于项目之上Git应用级别的行为。 配置方式:可以在任意目录下创建相应的.gitignore文件,然后再使用以下命令配置Git git config --global core.excludesfile \~/.gitignore gitignore规则不生效 .gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的,所以一定要养成在项目开始就创建.gitignore文件的习惯。

相关推荐
YCY^v^30 分钟前
JeecgBoot 项目运行指南
java·学习
云小逸36 分钟前
【nmap源码解析】Nmap OS识别核心模块深度解析:osscan2.cc源码剖析(1)
开发语言·网络·学习·nmap
JustDI-CM1 小时前
AI学习笔记-提示词工程
人工智能·笔记·学习
春日见1 小时前
如何创建一个PR
运维·开发语言·windows·git·docker·容器
悟纤1 小时前
学习与专注音乐流派 (Study & Focus Music):AI 音乐创作终极指南 | Suno高级篇 | 第33篇
大数据·人工智能·深度学习·学习·suno·suno api
爱写bug的野原新之助1 小时前
加密摘要算法MD5、SHA、HMAC:学习笔记
笔记·学习
ZH15455891312 小时前
Flutter for OpenHarmony Python学习助手实战:Web开发框架应用的实现
python·学习·flutter
百锦再2 小时前
Vue高阶知识:利用 defineModel 特性开发搜索组件组合
前端·vue.js·学习·flutter·typescript·前端框架
CappuccinoRose2 小时前
JavaScript 学习文档(二)
前端·javascript·学习·数据类型·运算符·箭头函数·变量声明
A9better2 小时前
C++——不一样的I/O工具与名称空间
开发语言·c++·学习