首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Don't-repeat-yourself git revision range语法?

Don't-repeat-yourself git revision range语法?
EN

Stack Overflow用户
提问于 2017-09-07 05:13:18
回答 2查看 87关注 0票数 3

假设S是git提交的SHA。

我们如何才能表达范围S^..S而不重复S呢?

换句话说,“给我一个以commit S结尾的一次提交范围”。

(有没有办法将N次提交推广到以S结尾的N次提交?)

我前前后后地阅读了man gitrevisions;什么也没找到。

EN

回答 2

Stack Overflow用户

发布于 2017-09-07 23:01:56

我想你是在搜索<tree-ish>^!

有关详细信息,请参阅gitrevisions文档:

为方便起见,重复:

<rev>^!, e.g. HEAD^!

后缀^后跟一个感叹号等同于提交<rev>,然后给所有父级加上前缀^,以排除它们(及其祖先)。

不是很容易理解,但我很确定这就是你要找的。

但我没有看到一种通用的方法来做到这一点。

票数 4
EN

Stack Overflow用户

发布于 2017-09-07 23:31:38

您可以将其封装到一个整洁的小git别名中:

代码语言:javascript
运行
复制
git config --global alias.range '!bash -c "git $1 ${2-HEAD}~$3..${2-HEAD}" -'

分解:

  1. 创建全局别名范围

git config --全局alias.range

  • Call外部bash命令

'!bash -c "“-‘

  • 使用第一个参数作为命令调用git

git $1

  • 然后在第二个和第三个参数

的基础上构建我们的范围

代码语言:javascript
运行
复制
- `${2-HEAD}` uses the second parameter or defaults to HEAD of none is supplied
- `$3` is the number of commits you want, will be empty if the parameter is not supplied. supplied

${2-HEAD}~$3..${2-HEAD}

示例用法:

代码语言:javascript
运行
复制
`git range log 4ab9f0d 4`
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46084421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档