一文学懂Git代码

序言:Git 是最常用的版本控制系统。Git 会跟踪我们对文件所做的更改,因此我们可以记录已完成的工作,并且可以在需要时恢复到特定或以前的版本。Git 还使多人协作变得更加容易,允许将多个人的更改全部合并到一个源中。

图片转自GeekHour

一、Git的安装与配置(Linux)

1.git的安装命令

sudo apt install git

2.查看git版本

git --version

如果返回git版本号,则表示git安装成功

3.git参数配置

配置用户名和邮箱

git config --global user.name ***
git config --global user.email ***@**.com

保存这些用户配置,避免下次重复输入登陆

git config --global credential.helper store

查看配置项命令如下,查看所有配置项:

git config --list

删除配置项命令如下:

git config --global --unset ***

二、git的创建与克隆

1.创建git仓库

在当前目录下创建一个git仓库

git init git_name

查看当前仓库的代码如下,如果有.git 文件夹表示创建成功

ls -a

2.克隆git仓库

在当前目录下创建一个git仓库

git clone https://github.com/**********.git

三、git暂存区

1.查看git状态

终端显示红色表示该文件未被跟踪的状态

git status

2.添加到暂存区和回退暂存区

将上面的未被跟踪文件添加到暂存区

git add ***(文件名)

将 .txt 结尾的文件添加到暂存区

git add *.txt

将当前目录的所有文件添加到暂存区中

git add .

将暂存区中的文件拿出到工作区变回未被跟踪状态

git rm --cached ***(文件名)

3.提交命令

将暂存区的内容提交到git仓库中, 不使用 -m会进入vim界面输入提交信息名称

git commit -m "提交到仓库1"

提交命令只能将暂存区的文件提交到仓库中,对于未被跟踪的工作区文件不能提交。

提交完成后可以用git log命令查看提交日志,显示提交ID、提交作者和邮箱、提交日期、时间、提交编写的注释信息(-m命令)

git log

四、版本控制

1.git reset版本回退的三种模式

此图截自B站up主GeekHour

git reset --soft **(回退版本ID)	#工作区和暂存区的内容都不会被清空
git reset --hard **(回退版本ID)	#工作区和暂存区的内容都会被清空
git reset --mixed **(回退版本ID)	#工作区会被保留,暂存区的内容会被清空

谨慎使用 -hard,如果误操作了,可以使用下面代码做版本回溯

git reflog		# 查看操作的历史记录
git reset --soft **(误操作之前,想回退的版本号)

2.查看版本及文档差异

此图截自B站up主GeekHour

(1).git diff默认比较工作区与暂存区之间的内容

git diff

示例
上图中的红色表示删除内容,绿色表示增加内容。

(2).比较暂存区与版本库之间的差异

git diff --cached

(3).比较两个版本之间的差异

先试用命令查看版本记录,找到对应版本号

git reflog

查看版本之间的差异

git diff 版本号1 版本号2

查看当前版本和前n(1,2.3……)个版本的差别

git diff HEAD~n HEAD

查看当前版本前三个版本与先版本直接在file3.txt的差异

git diff HEAD~3 HEAD file3.txt

(4).比较两个分支之间的差异

3.删除文件

删除本地文件后查看暂存区状态,可以看到显示file1.txt为红色字体,表示暂存区需要与本地有不匹配,需要更新暂存区

rm file1.txt
git status

查看暂存区内容,并且用git add更新暂存区

git ls-files
git add file1.txt

上面是分两个步骤分布删除暂存区中的file1.txt,也可以使用下面代码一次删除工作区和暂存区的文件

git rm file1.txt

把文件从暂存区删除,但保留在当前工作区中

git rm --cached file1.txt

删除文件后记得提交到版本库中

git commit -m 删除file1

五、忽略版本更新

1.忽略文件

当需要忽略一些日志文件等无需更新文件时,需要使用忽略版本。
使用通配符将所有 .log结尾的文件计入忽略更新名单,不添加到版本库中

echo *.log > .gitignore  # 将所有 .log结尾的文件放入.gitignore忽略名单

为什么有些log文件还是能被版本检测到呢?
.gitignore的前提是该文件不能被添加到版本库中。

2.忽略文件夹

使用vi命令编辑忽略名单

vi .gitignore	# 编辑.gitignore
echo temp/ >> .gitignore	# 追加文件夹名称到忽略名单

在忽略名单中键入文件夹名称加上“/”,一定要加斜杠,这样才能识别是文件夹。

六、分支

创建一个新的分支

git branch otherBranch	# 新建一个名称为otherBranch的分支
git branch				# 查看当前分支

切换到不同分支

git switch otherBranch

合并不同分支的文件

git merge otherBranch	# 将otherBranch内容合并到当前分支中

展示分支图

git log --graph --oneline --decorate --all

删除分支

git branch -d otherBranch	# 删除已经被合并的分支
git branch -D otherBranch	# 强制删除分支

合并区别
git merge: 优点:不会破坏原分支的提交历史,方便回溯和查看
缺点:会产生额外的提交节点,分支图比较复杂
git rebase: 优点:不会新增额外的提交记录,形成线性历史,比较干净直观
会改变提交历史,改变了当前分支branch out的节点。避免在共享分支使用。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值