Git 快速使用手册(一)

Git 快速使用手册(一)

Git 快速使用手册(二)

一、概述

1.1 概念

Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理小型到大型的项目。

❀ 什么是版本控制系统?

版本控制系统是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。

1.2 版本控制系统的分类

  • 集中化的版本控制系统(例如SVN)
  • 分布式的版本控制系统(例如Git,BitKeeper)

分布式版本控制系统的特点

  • 客户端并不只是提取最新版本的文件,而是把代码仓库完整地镜像下来
  • 可以指定和若干不同的远端代码仓库进行交互
  • 利用索引记录版本之间的差异

二、Git 结构及代码托管中心

2.1 本地结构

2.2 代码托管中心

  • 作用:维护远程库

本地库与远程库的交互

  1. 团队内部协作

在这里插入图片描述

  1. 跨团队协作

在这里插入图片描述

托管中心类型

  1. 局域网环境下:可以搭建GitLab服务器作为代码托管中心,GitLab可以自己去搭建
  2. 外网环境下:可以用Github或Gitee作为代码托管中心,不用自己单独搭建

三、Git 初始设置

3.1 基本设置

  1. 设置用户名和邮箱
# 设置用户名
git config --global user.name "Ning"
# 设置邮箱
git config --global user.email "242741154@qq.com"

# 查看
git config user.name
git config user.email
  1. 设置换行符的自动转换和安全检查
  • 情况一:Git 可以在提交时自动地把回车(CR)和换行(LF)转换成换行(LF),而在检出代码时把换行(LF)转换成回车(CR)和换行(LF)。 可以用git config --global core.autocrlf true 来打开此项功能。 如果是在 Windows 系统上,把它设置成true,这样在检出代码时,换行会被转换成回车和换行:
# 提交时转换为LF,检出时转换为CRLF
git config --global core.autocrlf true
  • 情况二:如果使用以换行(LF)作为行结束符的 Linux 或 Mac,则不需要 Git 在检出文件时进行自动的转换。当一个以回车(CR)和换行(LF)作为行结束符的文件不小心被引入时,如果想让 Git 修正,可以把core.autocrlf设置成input来告诉 Git 在提交时把回车和换行转换成换行,检出时不转换(这样在 Windows 上的检出文件中会保留回车和换行,而在 Mac 和 Linux 上,以及版本库中会保留换行)。
# 提交时转换为LF,检出时不转换
git config --global core.autocrlf input
  • 情况三:如果在Windows 上开发,且开发的是仅运行在Windows 上的项目,可以设置false取消此功能,把回车保留在版本库中:
# 提交检出均不转换
git config --global core.autocrlf false
  • 你也可以在文件提交时进行safecrlf检查
# 拒绝提交包含混合换行符的文件
git config --global core.safecrlf true   
# 允许提交包含混合换行符的文件
git config --global core.safecrlf false   
# 提交包含混合换行符的文件时给出警告
git config --global core.safecrlf warn

建议:开发Java程序时,按照《Java开发手册》规定,建议执行git config --global core.autocrlf input命令,以便将所有换行符转换为LF风格

3.2 初始化本地仓库

  1. 创建一个文件夹
  2. Git Bash进入该文件夹
  3. 执行init命令
git init

在这里插入图片描述

注意事项:不要任意修改.git目录下面的内容

四、Git 常用命令

4.1 addcommit命令

  • 作用:将工作区内容同步到暂存区,以及将暂存区内容同步到本地库

测试:

  1. 创建一个文本文件
  2. 将文件提交到暂存区
touch Demo.txt
git add Demo.txt
  1. 将暂存区的内容提交到本地库
git commit -m "这是我提交的第一个文件 Demo.txt" Demo.txt

在这里插入图片描述

注意事项:

  1. 不放在本地仓库的文件,Git不予管理
  2. 本地仓库内,只有执行过addcommit命令的文件,Git才会管理

4.2 status命令

  • 作用:查看工作区和暂存区的状态

测试:

  1. 执行status命令

在这里插入图片描述

  1. 创建新的文件

在这里插入图片描述

  1. 再次执行status命令

在这里插入图片描述

  1. 执行add命令

在这里插入图片描述

  1. 再次执行status命令

在这里插入图片描述

  1. 执行commit命令,之后再执行status命令

在这里插入图片描述

  1. 修改Demo2.txt文件中的内容,再查看状态

在这里插入图片描述

  1. 重新添加到暂存区,并提交至本地库

  1. 查看最终的状态

4.3 log命令

  • 作用:查看提交记录(由近及远)

在这里插入图片描述

当现实记录较多时,该日志有分页效果

下一页:(空格)

上一页:b

到尾页会显示(END)

退出:q

# 日志展示方式
# 方式1
git log
# 方式2
git log --pretty=oneline
# 方式3
git log --oneline
# 方式4
git reflog

补充:

  1. -p--patch选项 ,会显示每次提交所引入的差异(按补丁的格式输出)

  2. 也可以限制显示的日志条目数量,例如使用-2选项来只显示最近的两次提交

在这里插入图片描述

4.4 reset命令

  • 作用:前进或后退历史版本

当前版本状况

插曲:

可以注意到最后一次提交的msg本应写为insert ccc,却错写成了insert bbb,这时可以采用git commit --amend -m "new msg"命令进行修改

在这里插入图片描述

可以看到最后一条提交记录的msg,变成了insert ccc,不过reflog中还可以看到原来的msg

测试:

  1. 执行git reset --hard [index]
  2. 查看reflog

在这里插入图片描述

reset命令的参数:

--hard: 本地库指针移动时,重置暂存区和工作区

--mixed: 本地库指针移动时,重置暂存区

--soft: 本地库指针移动时,暂存区和工作区都不动

4.5 删除文件及文件找回

测试:

  1. 新建文件Test2.txt,添加并提交到本地库

  2. 删除工作区中的Test2.txt

  3. 同步Test2.txt的情况到本地库

在这里插入图片描述

  1. 查看日志

  1. 找回本地库删除的文件(实际上就是回滚到删除前的历史版本)

在这里插入图片描述

提示:

  1. 当工作区文件删除后未同步,或者只同步到了暂存区时,也可采用reset --hard命令,回滚到未删除时的版本
  2. 当对文件内容进行修改后,只同步到暂存区时,可以采用git restore --staged [filename]命令来撤销同步操作

在这里插入图片描述

4.6 diff命令

测试:

  1. 创建文件Test3.txt,添加到暂存区并提交到本地库

  1. 更改工作区中Test3.txt以及Demo2.txt的内容,执行git diff

在这里插入图片描述

在这里插入图片描述

总结:

git diff [filename]比较的是工作区和暂存区中指定文件的差异

git diff比较的是工作区和暂存区中所有文件的差异

git diff [revision] [filename]比较的是工作区和历史版本中指定文件的差异

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值