分支(Branch)&标签(Tag)
- 分支:分支代表了一个独立的开发线路,支持动态演进。当你创建了一个分支,你可以在上面提交代码、创建标签、限制访问权限、下载特定分支的代码等。一般仓库中都有一个主分支(master/main),其他分支都是从主分支或者其他分支上创建的。常见的分支有开发分支、特性分支、bugfix分支。分支可以只存在于本地,也可以推送到远端服务器;可以对两个分支进行merge和rebase操作。
- 标签:相当于一个静态版本快照,包含一个名字和一个描述信息(可选),不可独立演进(即不能提交代码),一般用于版本发布。
在Git中,可以通过git branch -a
查看当前仓库的所有分支,包含本地和远端;通过git tag -l
查看所有标签信息;
作者(Author)与提交者(Committer)
- 作者:指编写原始更改或代码的人。在多人协作的项目中,author 是实际做出代码改动的人。
- 提交者:指将更改最终提交到 Git 仓库中的人。在一些情况下,author 和 committer 可能是同一人,但在一些协作环境中(例如,代码审查后的合并操作),committer 可能是负责审查和合并其他人更改的人。
在Git库中,可以通过git cat-file -p <commit-id>
查看一个修改的作者与提交者信息。
1
2
3
4
5
6
7
|
git cat-file -p HEAD
tree 815b0a130b1689e2e68f021b42c609ff84b1a5d9
parent 2c7dcac45b2d91a6367aed9588d84e24e75f7210
author ticktechman <geek.wystan@gmail.com> 1712144787 +0800
committer ticktechman <geek.wystan@gmail.com> 1712144787 +0800
DS_Store
|
git cat-file -p HEAD
tree 815b0a130b1689e2e68f021b42c609ff84b1a5d9
parent 2c7dcac45b2d91a6367aed9588d84e24e75f7210
author ticktechman <geek.wystan@gmail.com> 1712144787 +0800
committer ticktechman <geek.wystan@gmail.com> 1712144787 +0800
DS_Store
提交记录
用户的每次修改,都会产生一条提交记录,用户可以为本次提交添加一些描述信息,每个提交记录中包含一些元数据信息,包括:作者、时间、描述信息、上一个版本的ID等。Git就是通过提交记录,来把对代码的修改联系起来,形成一个串联的历史记录。每个提交记录对应一个历史版本,用一个十六进制的ID(例如2c29cc6c80ac19d6b329d44b3f84fe1e82ec167f)来标识。用户可以切换到其中的某个版本进行版本回退或修改bug。
上图中的每个节点,都代表一条提交记录。在Git库中,可以执行git log
查看提交记录。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
git log
commit baa818089f9721eba6b10f4326e0c25d0ce1cf33 (HEAD -> main, origin/main, origin/HEAD)
Author: ticktechman <geek.wystan@gmail.com>
Date: 2024-04-03 19:46:27 +0800
DS_Store
commit 2c7dcac45b2d91a6367aed9588d84e24e75f7210
Author: ticktechman <geek.wystan@gmail.com>
Date: 2023-11-01 23:03:10 +0800
fix: return a binary format of plist after change it
commit ef333f238bb190fc144de208771067e22f00aa91
Author: ticktechman <geek.wystan@gmail.com>
Date: 2023-11-01 22:38:11 +0800
feature: add plist.dict.empty
|
git log
commit baa818089f9721eba6b10f4326e0c25d0ce1cf33 (HEAD -> main, origin/main, origin/HEAD)
Author: ticktechman <geek.wystan@gmail.com>
Date: 2024-04-03 19:46:27 +0800
DS_Store
commit 2c7dcac45b2d91a6367aed9588d84e24e75f7210
Author: ticktechman <geek.wystan@gmail.com>
Date: 2023-11-01 23:03:10 +0800
fix: return a binary format of plist after change it
commit ef333f238bb190fc144de208771067e22f00aa91
Author: ticktechman <geek.wystan@gmail.com>
Date: 2023-11-01 22:38:11 +0800
feature: add plist.dict.empty