如何在git commit消息中引用先前的提交

Joe*_*oel 29 git github

是否存在引用git commit消息中的先前提交的约定?

示例提交消息:

Fixed bug such and such introduced in a1b2c3e4
Run Code Online (Sandbox Code Playgroud)

特别是,是否存在github.com会理解并转换为链接的约定?

Mic*_*ins 35

Yup - GitHub将使用GitHub Flavored Markdown获取对SHA和用户/ repos模式的引用

特别是关于链接到提交:

一点GitHub香料

除了上一节中的更改之外,某些引用也是自动链接的:

  • SHA:be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2
  • 用户@ SHA参考:mojombo @ be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2
  • 用户/项目@ SHA:mojombo/god @ be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2
  • #Num:#1
  • 用户/ #Num:mojombo#1
  • 用户/项目#Num:mojombo/god#1

  • @Joel你还要记住它是一个缩写的SHA.如果你的repo变得足够大(类似内核的那么大,我知道),你缩短的SHA长度可能会增加,导致你出现歧义.所以,你_can_使用缩写的SHA,但如果不是那么努力,我认为使用完整的SHA总是更好.Github为您自动修剪它. (6认同)
  • @Joel:[有效](https://github.com/mgarciaisaia/test-repo/commit/1528cb7af7323ae71abb8417f4befa6abc9c6569);-) (3认同)
  • 谢谢!这非常有帮助。我想知道我是否会使用缩写的 SHA 并仍然将其转换为链接.. (2认同)

Vse*_*ser 16

git 的人这样回答这个问题:

如果要引用稳定分支历史记录中的先前提交,请使用“缩写哈希(主题,日期)”格式,如下所示:

Commit f86a374 (pack-bitmap.c: fix a memleak, 2015-03-30)
noticed that ...
Run Code Online (Sandbox Code Playgroud)

gitk 的“复制提交摘要”命令可用于获取此格式(主题用一对双引号括起来),或者调用 git show:

git show -s --pretty=reference <commit>
Run Code Online (Sandbox Code Playgroud)

或者,在不支持 --pretty=reference 的旧版 Git 上:

git show -s --date=short --pretty='format:%h (%s, %ad)' <commit>
Run Code Online (Sandbox Code Playgroud)
2024 年 2 月添加

我最终添加了一个别名ref = show -s --pretty=reference。这很有帮助。