Git - 查找特定的 git 提交哈希 ID 并将其用作 <start-point> 用于 git 结帐
Git - find a specific git commit hash ID and use it as <start-point> for git checkout
我需要使用 git checkout
和选项 start-point
从现有分支创建一个新分支,但我不确定如何正确确定它。
来自 git log
我需要在消息中找到具有特定事务编号的提交。
例如。来自 git log
..........................................
commit b91a725feea867e371c5488e9fe60ca4cd0e927f
Author: john.smith
Date: Tue Mar 15 11:54:50 2022 +0100
Improve error messages for instrument creation
[AccuRev transaction: 20839205]
commit c4d1ebd3da59efa7223876b1de37960f2e6bcbff
Author: john.smith
Date: Fri Mar 11 16:52:04 2022 +0100
Added new libraries
[AccuRev transaction: 20829020]
...............................
因此,例如我需要找到包含此字符串(具有特定事务编号值)的消息的提交:[AccuRev transaction: 20829020]
那么两个问题:
- 如何从所有
git logs
中获取此特定的日志消息以及如何为该特定提交检索 commit hash id
?
- 是否足以执行命令
git checkout -b branchName commitHashId
从该特定起点创建新分支?
编辑: git log --grep
在尝试过滤特定 ID 时没有为我提供正确的结果:
请看例子:
git log --grep="[AccuRev transaction: 698102]"
commit f6d975e531b15c14683155a9e3ceca45d6a51854 (HEAD -> SoftBroker)
Author: stefan
Date: Mon Feb 21 10:57:34 2022 +0100
SPRs ,,,JIRA Issues SOF-46,SOF-49,SOF-6782,SOF-6784 Promote pom files.
[AccuRev transaction: 20754456]
commit 0ee4ede74e3efe9d98a42ae5a6cb4c2641cd1384
Author: alek
Date: Mon Feb 7 17:08:17 2022 +0100
SOF-6707: Account should be pre-selected after user login
[AccuRev transaction: 20706246]
commit 633a0f21584f5578aaac1848255aa850bc95b52a
Author: alek
Date: Mon Feb 7 17:06:18 2022 +0100
JIRA Issue increasing version to 2022.1.1 and 2022.Q1.1
[AccuRev transaction: 20706239]
非常感谢
要查找包含特定消息的修订:
git log --grep=whatever-you-need-to-find
这应该会为您提供与您提供的正则表达式相匹配的修订列表。然后就是check out a branch的问题了。
git checkout some-revision-id
不 创建新分支。 git 所做的就是转到该修订版并放入工作树,您将处理所谓的 分离的 HEAD... 换句话说,您将在没有分支机构的情况下工作(非常好......git 拥有的最佳功能之一......在众多强大功能中)。如果你想从那个点创建一个分支,你应该 运行
git checkout -b some-new-branch some-revision-id
这将在该修订版上创建新分支并在一次操作中将其检出。
Git 有 revision syntax for simply naming commits by message content.
git checkout -b mynewbranch ':/\[AccuRev transaction: 20829020\]'
需要反斜杠,因为 [
是搜索表达式语言中的语法标记
我需要使用 git checkout
和选项 start-point
从现有分支创建一个新分支,但我不确定如何正确确定它。
来自 git log
我需要在消息中找到具有特定事务编号的提交。
例如。来自 git log
..........................................
commit b91a725feea867e371c5488e9fe60ca4cd0e927f
Author: john.smith
Date: Tue Mar 15 11:54:50 2022 +0100
Improve error messages for instrument creation
[AccuRev transaction: 20839205]
commit c4d1ebd3da59efa7223876b1de37960f2e6bcbff
Author: john.smith
Date: Fri Mar 11 16:52:04 2022 +0100
Added new libraries
[AccuRev transaction: 20829020]
...............................
因此,例如我需要找到包含此字符串(具有特定事务编号值)的消息的提交:[AccuRev transaction: 20829020]
那么两个问题:
- 如何从所有
git logs
中获取此特定的日志消息以及如何为该特定提交检索commit hash id
? - 是否足以执行命令
git checkout -b branchName commitHashId
从该特定起点创建新分支?
编辑: git log --grep
在尝试过滤特定 ID 时没有为我提供正确的结果:
请看例子:
git log --grep="[AccuRev transaction: 698102]"
commit f6d975e531b15c14683155a9e3ceca45d6a51854 (HEAD -> SoftBroker)
Author: stefan
Date: Mon Feb 21 10:57:34 2022 +0100
SPRs ,,,JIRA Issues SOF-46,SOF-49,SOF-6782,SOF-6784 Promote pom files.
[AccuRev transaction: 20754456]
commit 0ee4ede74e3efe9d98a42ae5a6cb4c2641cd1384
Author: alek
Date: Mon Feb 7 17:08:17 2022 +0100
SOF-6707: Account should be pre-selected after user login
[AccuRev transaction: 20706246]
commit 633a0f21584f5578aaac1848255aa850bc95b52a
Author: alek
Date: Mon Feb 7 17:06:18 2022 +0100
JIRA Issue increasing version to 2022.1.1 and 2022.Q1.1
[AccuRev transaction: 20706239]
非常感谢
要查找包含特定消息的修订:
git log --grep=whatever-you-need-to-find
这应该会为您提供与您提供的正则表达式相匹配的修订列表。然后就是check out a branch的问题了。
git checkout some-revision-id
不 创建新分支。 git 所做的就是转到该修订版并放入工作树,您将处理所谓的 分离的 HEAD... 换句话说,您将在没有分支机构的情况下工作(非常好......git 拥有的最佳功能之一......在众多强大功能中)。如果你想从那个点创建一个分支,你应该 运行
git checkout -b some-new-branch some-revision-id
这将在该修订版上创建新分支并在一次操作中将其检出。
Git 有 revision syntax for simply naming commits by message content.
git checkout -b mynewbranch ':/\[AccuRev transaction: 20829020\]'
需要反斜杠,因为 [
是搜索表达式语言中的语法标记