我已经阅读了 git-rev-parse 的手册页,但仍然不知道这个命令是做什么的。假设我有一个结构如下的 git 项目:
MyProject
??? Folder1
??? Folder2
??? .git
Run Code Online (Sandbox Code Playgroud)
如果我跑
git-rev-parse 头
然后我可以获得与我上次提交相同的 SHA_1。很简单。
但是,如果我跑
git-rev-parse 头:Folder1
然后我得到另一个 SHA_2,它与我曾经提交的任何 SHA 不同。我的问题是:这个“git-rev-parse HEAD:Folder1”是什么意思,这个SHA_2是什么?
看看文档:
<rev>:<path>, e.g. HEAD:README, master:./README后缀 : 后跟一个路径,在由冒号前的部分命名的树形对象中的给定路径上命名 blob 或树。以 ./ 或 ../ 开头的路径是相对于当前工作目录的。给定的路径将被转换为相对于工作树的根目录。这对于从与工作树具有相同树结构的提交或树中寻址 blob 或树最有用。
这意味着它不会获得 commit/tag/branch/... 的哈希值,但它会获取 commit/tag/branch/... 中目录/文件的哈希值。
因此,git-rev-parse HEAD:Folder1意味着Folder1在 ref HEAD(检出状态)中获取目录树对象的 SHA 哈希。
| 归档时间: |
|
| 查看次数: |
244 次 |
| 最近记录: |