标签: git-rev-parse

git rev-parse有什么作用?

怎么git rev-parse办?

我已经阅读了手册页,但它提出的问题多于答案.像:

挑选和按摩参数

按摩?那是什么意思?

我用作修订说明符的解析器(对SHA1),比如

git rev-parse HEAD^
Run Code Online (Sandbox Code Playgroud)

要么

git rev-parse origin/master
Run Code Online (Sandbox Code Playgroud)

这是命令的目的吗?如果没有,使用它来实现这一点是否正确?

git git-rev-parse

248
推荐指数
4
解决办法
9万
查看次数

使用 git rev-parse <tag> 错误提交哈希

我现在对 git 有一些奇怪的行为。

我有一个标记了提交的代码库 v2.3.0

如果我运行git log,我可以看到我最新的提交哈希是:

commit b2ee576083607b7ba451b72642a77ca3309e4ac9 (HEAD, tag: v2.3.0, origin/staging, origin/master, origin/develop, origin/HEAD, master)
Author: B <b@b.com>
Date:   Thu Apr 1 16:53:48 2021 +0000
Run Code Online (Sandbox Code Playgroud)

凉爽的!这也与我在 git repo 中看到的一致

如果我运行git checkout v2.3.0,我也会得到相同的提交哈希。甜的。

但是,如果我运行git rev-parse v2.3.0,要查看哪个提交哈希与我的标签对齐,我会得到提交哈希85607530aa64da4df34e7160d073df5c2699439b......?

如果我然后尝试检查该提交哈希,我的代码库仍然会说它在b2ee576083607b7ba451b72642a77ca3309e4ac9(即它没有改变)

所以据我所知,我有这个奇怪的幻像提交哈希,它在我的 git 存储库中找不到,但它似乎指向我的实际提交哈希。这给我带来了问题,因为我有一个依赖于 git rev-parse 正确输出的脚本。

我有 git 版本 git version 2.25.1

有人知道这里发生了什么吗?

git git-rev-parse

2
推荐指数
1
解决办法
102
查看次数

使用 :/ 语法时参考匹配提交的父级

:/语法允许您使用正则表达式来匹配提交。例如,要为包含字符串“Add widget”的早期提交创建修复提交,您可以编写:

git commit --fixup ':/Add widget'
Run Code Online (Sandbox Code Playgroud)

有没有办法将诸如^or 之类的修饰符应用于~表达式:/?我已经尝试过明显的语法......

git show ':/Add widget^'
Run Code Online (Sandbox Code Playgroud)

哪个不起作用:

fatal: ambiguous argument ':/widget^': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
Run Code Online (Sandbox Code Playgroud)

git show ':/Add widget^' --结果为fatal: bad revision ':/Add widget^')。

git git-rev-parse

2
推荐指数
1
解决办法
47
查看次数

通过提交消息标题引用 git 提交

如何通过提交消息标题中的文本/单词来引用 git 提交?

我想避免:

  • 鼠标复制/粘贴提交哈希值git log
  • 输入提交十六进制数字

git git-rev-parse

1
推荐指数
1
解决办法
1438
查看次数

git rev-parse HEAD:XXX 有什么作用?

我已经阅读了 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是什么?

git git-rev-parse

0
推荐指数
1
解决办法
244
查看次数

标签 统计

git ×5

git-rev-parse ×5