Git的正确使用方式 | 青训营笔记

100 阅读4分钟

常见问题

  1. 入职后按照文档进行Git配置,但是配置后依然拉取代码有问题,缺少自己排查配置问题的能力
  2. 研发流程中进行一些异常操作,不符合研发规范,不清楚保护分支,MR/PR等概念

课程目标

  1. 学习Git的基本命令,并了解原理,在遇到相关问题时,能自行排查解决
  2. 了解研发流程中的基本概念和规范,学会正确的使用Git

1. git是什么?

1.1 版本控制

640.jpeg

1.2 版本控制类型

640.png

1.2.1 本地版本控制

640-16791254777901.png

1.2.2 集中版本控制

image-20230304162101548.png

1.2.3 分布式版本控制

image-20230304162308584.png

1.3 Git发展历史

image-20230304162437911.png

2 Git的基本使用方式

image-20230304162528955.png

常见问题

image-20230304162606233.png

2.1 Git目录介绍

image-20230304163336375.png

git bash 命令行中输入 tree 命令发现并无此命令.

cmd的命令支持tree,可以在git bash中输入命令cmd命令切换到 cmd 环境,然后就可以使用cmd的命令了,记得Ctrl c把环境切换回来,以下方法也可以实现。

如何在 git bash 中借助 cmd 实现 tree 命令.

  • tree.com : 补全调用命令后缀名,直接调用系统命令.
  • cmd //c tree : 借助 cmd 运行 tree 命令,从而实现调用 tree 的目的,并且不用手动且环境
  • 这两种方式都存在中文乱码问题,即使设置了终端的编码方式也没有解决乱码.

调用 tree 命令的目的已经达到,没有解决的问题是中文乱码.

退出exit

复制、粘贴Ctrl/Shift ins

image-20230304163355521.png

2.1.1 Git Config

image-20230304163552583.png

2.1.2 常见Git配置

git config -l:可以查看git的所有配置

git config --system --list:查看系统配置

用户名和邮箱必须要配置,否则无法上传项目

image-20230304163618384.png

2.2 Git Remote

image-20230304164208264.png

git remote -h可以查看帮助

使用下面的第二个命令可以同一个源设置不同的Push和Fetch URL

image-20230304220356955.png

2.2.1 HTTP Remote

image-20230305102338007.png

2.2.4 SSH Remote

image-20230305104626336

如何生成公私钥的密匙,然后把它加到github上
  1. 首先创建仓库密匙

在git bash的当前仓库的文件夹输入ssh-keygen -t ed25519 -C "981155352@qq.com"

image-20230305112217802

  1. 然后把生成的id_ed25519.pub里面的key复制一下

先查看这个文件的密匙:cat /c/Users/hasee/.ssh/id_ed25519.pub

image-20230305112238644

然后复制里面的密匙

  1. 复制到github上

现在打开github,然后点击头像的Setting,然后点击SSH and GPG keys,再点击New SSH Key就可以添加了

image-20230305112753329

image-20230305112903578

完成了

image-20230305113217492

2.3 Git Add

创建了文件但是没有跟踪,需要使用git add .来跟踪,这样就可以把文件加入了暂存区。

image-20230305142407774

2.4 Git Commit

使用Git Commit来进行提交,可以观察到目录的结构发生了一些变化

image-20230305144507504

2.5 Objects文件夹

image-20230305144650535

image-20230305144721491

image-20230305144835501

2.6 Refs

我们使用git checkout -b test来创建并切换到新分支

image-20230305145001140

image-20230305145140636

image-20230305145304402

2.7 Annotation Tag

image-20230305145432561

2.8 追溯历史版本

image-20230305195842111

image-20230305200148882

2.9 修改历史版本

image-20230305200731311

image-20230305202329021

2.10 Objects

image-20230305202430168

可以通过fsck命令来查找仓库中是否有悬空的commit

2.11 Git GC

image-20230305202905531

gc命令还可以把之前的Object和refs打包,并且删除一些悬空的commit

2.12 完整的Git视图

image-20230305203420096

2.13 Git Clone & Pull & Fetch

image-20230305204508995

2.14 Git Push

Push是将本地代码同步至远端的方式

image-20230305204716447