有个需求,需要获取通过这次merge的提交号获取,这次merge合并了哪几次提交,获取这几次提交的提交号,然后通过提交号获取这次提交的log包括日期,作者,message和提交文件
时间: 2023-08-18 13:07:59 浏览: 45
可以通过以下命令获取这次merge合并的提交:
```
git log --merges --pretty=format:"%h %p" -1
```
其中,`--merges` 表示只显示合并提交,`--pretty=format:"%h %p"` 表示以缩短的提交哈希和父提交哈希的形式显示提交信息,`-1` 表示只显示最近一次的提交。
通过上面命令获取到的合并提交哈希,可以使用以下命令获取这次提交的log信息:
```
git log --pretty=format:"%h %ad | %s%d [%an]" --date=short <merge_commit_hash>
```
其中,`--pretty=format:"%h %ad | %s%d [%an]"` 表示以缩短的提交哈希、提交日期、提交信息和提交者的形式显示提交信息,`--date=short` 表示以短日期的形式显示提交日期,`<merge_commit_hash>` 是之前获取到的合并提交哈希。
如果需要获取这次提交的文件列表,可以使用以下命令:
```
git diff --name-only <merge_commit_hash>^ <merge_commit_hash>
```
其中,`<merge_commit_hash>` 是之前获取到的合并提交哈希,`^` 表示该提交的父提交,即合并前的版本。
希望这些命令能够帮助你完成对需求的实现。
相关问题
git通过指定hash怎么查看这次merge合并了哪几次提交
你可以使用以下命令来查看某次合并提交所包含的具体提交记录:
```
git show --pretty=oneline --merges <merge_commit_hash>
```
其中,`<merge_commit_hash>` 是指你要查看的合并提交的哈希值。该命令会显示出合并提交的详细信息,包括合并的两个分支、提交者、提交时间等。在这些详细信息的下面,你会看到一些类似如下的内容:
```
Merge: 9ec5ac8 5e6a2c7
Author: John Doe <johndoe@example.com>
Date: Tue Sep 14 10:10:45 2021 -0400
Merge branch 'feature-branch'
This merge includes the following commits:
5e6a2c7 - added feature B
4f3e2c1 - added feature A
```
其中,`Merge` 行显示了合并的两个分支的最新提交哈希值,`Author` 行显示了合并提交的作者和提交时间,而下面的 `Merge branch` 行则列出了该合并包含的具体提交记录。在上面的例子中,该合并包含了两个提交记录 `5e6a2c7` 和 `4f3e2c1`。
如果你想查看所有的父提交记录(即合并提交的两个父提交),可以在命令中添加 `-m` 参数,如:
```
git show --pretty=oneline --merges -m <merge_commit_hash>
```
这将显示出所有父提交的详细信息,以及合并提交所包含的具体提交记录。
git 提交记录里面有一条Merge消息 怎么关闭
如果你想关闭一个 Merge 提交的消息,可以使用 `git revert` 命令。这个命令可以撤销一个或多个提交,生成一次新的提交,将之前提交的改变反转过来。
假设你想关闭最近的一个 Merge 提交,可以使用以下命令:
```
git revert -m 1 <commit-hash>
```
其中,`<commit-hash>` 是要回滚的 Merge 提交的哈希值。`-m 1` 表示要回滚的是主分支和合并分支的差异,而不是指定分支和合并分支的差异。
执行完上面的命令后,会弹出编辑器让你输入一些关于回滚的说明。保存并退出编辑器后,会生成一次新的提交,将之前的 Merge 提交反转过来。最后,你可以将这个新的提交 push 到远程仓库,关闭原来的 Merge 提交的消息。