不要重复自己的git修订范围语法?

时间:2017-09-06 21:13:18

标签: git

假设S是git提交的SHA。

如果没有重复S的烦恼,我们如何表达范围S^..S

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

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

我向前和向后阅读man gitrevisions;没找到任何东西。

2 个答案:

答案 0 :(得分:4)

我认为您正在搜索DispatchQueue.main.asyncAfter(deadline: .now() + 0.6) { self.tableView?.scrollToRow(at: pathToLastRow, at: .bottom, animated: animated) }

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

为方便起见重复:

  

<tree-ish>^!

     

后缀为<rev>^!, e.g. HEAD^!后跟感叹号与提交提交^相同,然后其所有父项都以<rev>为前缀,以排除它们(及其祖先)。

不那么容易理解,但我确信这就是你要找的东西。

但我没有看到一种通用的方法。

答案 1 :(得分:0)

你可以把它包装成一个整洁的小git别名:

git config --global alias.range '!bash -c "git $1 ${2-HEAD}~$3..${2-HEAD}" -'

分解:

  1. 创建全局别名范围

    git config --global alias.range
    
  2. 调用外部bash命令

    '!bash -c "<command>" -'
    
  3. 使用第一个参数作为命令

    调用git
    git $1
    
  4. 然后用第二和第三个参数构建我们的范围

    • ${2-HEAD}使用第二个参数或默认为HEAD为none 供给
    • $3是您想要的提交数,如果未提供参数,则为空。 供给

      ${2-HEAD}~$3..${2-HEAD}
      
  5. 示例用法:

    `git range log 4ab9f0d 4`