git学习笔记二

git常见命令

git config

git config用来配置Git,它可以配置三个作用范围(system,global,local),通常我们用git config设置名字和邮箱地址,这两个信息在提交代码时,能让其他人看到是谁提交的代码。

git config --global user.name “hzn”

git config --global user.email "test@163.com"

配置级别

system[低优先级]:影响到全系统的git仓库,存储在/etc/gitconfig文件中

global[中优先级]:影响到所有当前用户的git仓库,存储在~/.gitconfig中

local[默认,高优先级]:只影响本仓库,存储在.git/config中

在git config中还可以配置其他东西,比如编辑器等等,更多可以查看https://git-scm.com/book/zh/v1/%E8%87%AA%E5%AE%9A%E4%B9%89-Git-%E9%85%8D%E7%BD%AE-Git

git status

查看git仓库信息

git status可以查看文件的跟踪状态,工作区与暂存区,暂存区与最新提交的状态跟踪。

在git中,状态总共有两种,一种是内容状态,一种是文件状态,内容状态主要针对工作目录、暂存区与提交区之间的状态变化;文件状态主要是指文件是否已跟踪,分为未跟踪与已跟踪状态。

git init

初始化git仓库,主要会生成.git隐藏目录,用来保存元数据以及对象数据库的地方,这个目录可以说是Git的核心,每次克隆镜像仓库时,实际上拷贝的这个目录里的内容而已,然后再根据这个目录恢复工作目录。(工作目录:你所git init的目录,但不包含.git这个隐藏的目录),即在工作目录下生成相应的项目文件和目录。而我们的暂存区也位于这个.git目录之下,名为index,它一般很小,一般不超过1KB左右,这和它存储的内容是有关系的。

git操作内容/文件命令

git add

添加文件内容到暂存区(同时文件被跟踪)

git add可以分两条底层命令实现:

git hash-object <文件名>
git update-index <文件名>

运行第一条命令,Git将会根据新生成的文件产生一个长度为40的SHA-1哈希字符串,并在.git/objects目录下生成一个以该SHA-1的前两个字符命名的子目录,然后在该子目录下,存储刚刚生成的一个新文件,新文件名称是SHA-1的剩下的38个字符。

第二条命令将会更新.git/index索引,使它指向新生成的objects目录下的文件。

在这里插入图片描述

在这里插入图片描述

.gitignore文件

它是忽略文件,仅仅作用与未跟踪文件,再添加跟踪文件时过滤匹配文件。

在这里插入图片描述

git rm

从暂存区删除文件 --cached参数表示是否只删除暂存区

git rm --cached 仅从暂存区删除

git rm 从暂存区与工作目录删除

小技巧

git rm ${git ls -files --deleted} 删除所有被跟踪,但是在工作目录被删除的文件

git commit

根据暂存区内容创建一个提交记录,通常在提交时候,会加上-m参数。-m 帮助我们对这个命令进行一个注释,使用log命令的时候可以得到一个友好的提示

在这里插入图片描述

直接提交,将工作目录的文件内容提交到提交区,-a参数

在这里插入图片描述

git log

显示提交历史信息

在这里插入图片描述

显得更加美观的输出

git log --graph --pretty=format:’%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset’ --abbrev-commit

在这里插入图片描述

查看log输入太长串的命令,不太显示,因此可以设置别名

git config --global alias.lg “log --graph --pretty=format:’%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset’”

git lg

在这里插入图片描述

git输出可以定制化,多种颜色和自定义log格式,更多可以查看官网的相关资料。

git diff

显示不同版本差异
在这里插入图片描述

git checkout

撤销本地修改,将暂存区内容复制到工作目录,相当于工作目录没有修改
在这里插入图片描述

git reset

撤销暂存区内容,将提交区的内容复制到暂存区,相当于工作目录没有add
在这里插入图片描述

撤销全部改动

git checkout HEAD –
在这里插入图片描述

总结

在这里插入图片描述

文件是否跟踪通过git add与git rm

分支命令

git branch

分支的增删改查命令

git branch

git branch -d

git branch -v

当使用git branch next,它会在head所在指向commit对象上创建一个另外的引用
在这里插入图片描述
这是运行git commit
在这里插入图片描述

next指针没有变动,是因为没有切换到它身上,可用git checkout命令来切换分支

git checkout

通过移动HEAD检出版本,可用于分支切换

git checkout

git checkout -b

git checkout

运行git chechout next将head指针移动到next指针处

在这里插入图片描述

git commit后

在这里插入图片描述

使用git branch -v可以查看当且所处分支

在这里插入图片描述

git reset

将分支回退到某个历史版本

git reset --mixed (默认) 将内容复制到暂存区

git reset --soft 不会改变暂存区与工作目录

git reset --hard 将内容复制到暂存区与工作目录中

注意git reset时候回到到一个没有引用的版本时,切记不要进行增伤改操作,因为没有引用,切换到另外一个分支时,这部分的修改可能会被垃圾回收掉。

git reflog

在这里插入图片描述

通常记录记录提交的SHA不太理想,可以采用下图中的符号来回退到某个想要的版本

在这里插入图片描述

reset checkout的对比

在这里插入图片描述

git stash

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

git merge

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

远程配置命令

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值