受传统提交规范和 Angular 约定的启发,让我们来解释语义化提交术语,并演示提交信息的实际示例。

许多项目决定以某种约定方式来标准化它们的提交信息。这种做法并不是新出现的,但在最近几年中越来越多地得到了应用。而且很可能您已经在某些项目中遇到过这样的提交消息。

前言

洞悉技术的本质,可以让我们在层出不穷的框架面前仍能泰然处之。用了那么久的 Git,不懂点内部原理,那可不行!懂点原理可以让我们遇到问题的时候能够更好更快的理清解决问题的思路。

要真正读懂本文可能需要以下基础:

  • 有 Git 使用经验
  • 对 Git 的三个分区有所了解
  • 熟悉常用的 Linux 命令
  • 对经典哈希算法有一定的了解,比如SHA-1、SHA-256、MD5等

在开始之前,让我们先抛出几个问题,然后一一解决、回答它们

  • .git版本库里的文件/目录是干什么的?
  • Git是如何存储文件信息的?
  • 当我们执行git add、git commit时,Git背后做了什么?
  • Git分支的本质是什么?

what/why

通常情况使用git clone github_repository_address下载下来的仓库使用git branch查看当前所有分支时只能看到master分支,但是想要切换到其他分支进行工作怎么办❓

其实使用git clone下载的repository没那么简单😥,clone得到的是仓库所有的数据,不仅仅是复制在Github repository所能看到的master分支下的所有文件,clone下来的是仓库下的每一个文件和每一个文件的版本(也就是说所有的分支都被搞下来了咯),那为啥看不到,其实remote branch被隐藏了,需要使用git branch -a才能看到。

how

emmm…,现在看到了,那么怎么切换到remote branch呢?(我太难了🙃),又到了查文档的时候了,一波操作过后了解到git checkout是有restore working tree files的功能的,可以用来restore remote branch,比如使用以下命令在本地创建个新分支track远程分支:

1
$ git checkout -b <branch> --track <remote>/<branch>
1
2
# 例子,本地为远程分支CkaiGrac-PYMO创建的新分支名为yeshan,push时需要注意
git checkout -b yeshan --track origin/CkaiGrac-PYMO

tips:使用git checkout -t <remote/branch>默认会在本地建立一个和远程分支名字一样的分支

reference

如何将本地项目推送到Github

Tip:在本地要安装好Git,官网:https://git-scm.com/

kzni4K.png

一个学习Git的好地方:https://try.github.io/

在线闯关实战,边练边学的好地方:https://learngitbranching.js.org/

方法一:使用https推送

1
2
3
4
5
6
7
8
9
10
11
12
13
# 步骤
# 1.创建一个目录
mkdir Test
# 2.将当前目录变为git管理仓库
git init
# 3.将文件添加到版本库,这里将目录下的所有文件都添加进去了
git add .
# 4.告诉git将文件提交到仓库
git commit -m "first-commit"
# 5.将当前仓库与远程仓库关联
git remote add origin 远程仓库的https地址 # eg: git remote add https://github.com/ssmath/Test.git
# 6.将仓库内master分支的所有内容推送到远程仓库,这里会使用到Github的账号密码
git push -u origin master