在命令行上获取 git-commit-ids

2024-01-08

跑步时git commit --fixup=beefca7e或者当在提交消息中引用先前的提交时,我必须在笨拙的工作流程中使用鼠标。我使用bash:

  1. 打开一个新的终端选项卡/窗口/窗格。
  2. git log --oneline --graph
  3. 扫描列表以查找相关的提交 sha。
  4. 抓住鼠标,选择sha,将其复制到剪贴板。²
  5. 移回我正在工作的窗格并将其粘贴到那里。

这有效。但我怀疑这可以更容易地完成。

是否有命令行工具、脚本或 git-addons 允许我快速过滤提交并复制所选条目的 sha? 我的工作流程是否错误(或幼稚),我是否在某个地方错过了重要的 git 功能?

也能在 vim 中使用它,因为这是我编辑提交消息的编辑器。复制短煞而不是完整煞的奖励。


  • ¹ 我对此命名有一个更复杂的别名git lg.
  • ² xclip/gnome/剪贴板管理器配置为选择时自动复制。否则 ctrl-c/cmd-c 左右。粘贴是鼠标中键。节省了一些命令,但仍然不理想。我宁愿根本不使用鼠标并省略大多数步骤。

如果没有合适的工具,则创建它)想出这个:

#!/bin/bash
first_dialog() {
    dialog --output-fd 1        \
           --ok-label "Copy SHA" \
           --cancel-label "Exit"  \
           --menu "Select SHA to copy:" 0 0 0 "${list[@]}"
}

#-------------{ Create list for dialog }----------------
while read -r sha desc; do
    list+=( "$sha" "$desc" )
done < <(git log --oneline)

first_dialog

Usage:

echo "test $(~/test) stst"
test 8cabb04 stst

或者像这样:

sha="$(~/ower/test)"
$ echo $sha
20799ef

转化为函数:

gsha() {
    list=()
    while read -r sha    desc; do
       list+=(  "$sha" "$desc" )
    done  < <(git log --oneline -n${1:-20})
    dialog --output-fd 1        \
           --ok-label "Copy SHA" \
           --cancel-label "Exit"  \
           --menu "Select SHA to copy:" 0 0 0 "${list[@]}"
}

sha="$(gsha)"
$ echo $sha
20799ef

我在我的sshto https://github.com/vaniacer/sshto项目。将此添加到我的github also gsha https://github.com/vaniacer/gsha

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在命令行上获取 git-commit-ids 的相关文章

随机推荐

  • .NET 3.5 中的 FormsAuthentication.Timeout.TotalMinutes

    我刚刚使用 FormsAuthentication 我想要 Web 配置中表单身份验证标记的超时属性值 在 4 0 中 我们可以通过 FormsAuthentication Timeout TotalMinutes 获取此信息 参考 For
  • socket.io + node.js 的内存泄漏

    我的 Node js 应用程序似乎存在内存泄漏 我很快就构建了它 而且我的 JavaScript 不太强大 所以这可能很容易 我已经对它做了一些堆转储 它是字符串object 内存泄漏 速度约为每 5 分钟 1MB 我扩展了String 它
  • PHP MySQL 计数查询结果是字符串,而不是整数

    我有以下 MySQL 查询和 PHP 代码来格式化Count结果为单个数组 equalDimensions query SELECT allEqual AS COL1 COUNT AS imgCount FROM SELECT imgHei
  • Go 和 PHP 中的 SHA256 给出不同的结果

    我正在尝试通过 HTTP 将 SHA256 哈希字符串发送到服务器 我想通过执行 SHA256 哈希并验证两个匹配来进行身份验证 出于测试目的 我使用相同的字符串 但是我的结果不匹配 这可能是我的 base64 encode 调用的默认编码
  • 为什么我在这个 devise_group 调用中收到 NoMethodError 错误?

    我正在使用 devise 3 5 2 ruby 2 2 2 rails 4 2 3 class ApplicationController lt ActionController Base Prevent CSRF attacks by r
  • Application.Exit() 不起作用

    static void Main Application EnableVisualStyles Application SetCompatibleTextRenderingDefault false Application Exit App
  • PyMongo 与 Django 的 MongoEngine

    对于我的一个项目 我更喜欢使用Django Mongodb 我为什么要使用蒙戈引擎 但不仅仅是PyMongo 有什么优点 使用 PyMongo 查询给出的结果是已准备好的对象 不是吗 那么 MongoEngine 的目的是什么 这是一个老问
  • 在 Terraform 中使用“execute”插值声明变量

    我想将一个变量的子字符串声明给另一个变量 我测试了使用 terraform 控制台获取子字符串 gt echo element split 10 250 3 0 24 2 terraform console gt 3 我的子网是 10 25
  • 更改树莓派蓝牙设备名称?

    我正在尝试将树莓派的蓝牙名称更改为其他名称 IP 地址 以便当我扫描并配对我的 Android 设备时 它将将此 IP 视为设备名称 它工作过一次 但随后又返回显示为 raspberrypi 0 我已经尝试了 hciconfig set n
  • Android Lollipop 成为设备管理员不起作用

    我正在跟进本指南 http developer android com guide topics admin device admin html关于如何让我的应用程序请求成为设备管理员 这适用于任何 4 x android 版本的任何手机
  • 为什么构建 liblzma 失败并显示“找不到库”?

    我从他们的网站安装了 mingw 我安装了带有 iconv 和 intl msys 和所有其他东西的开发人员包 I run configure进而make install 链接时 它打印 src liblzma liblzma la lin
  • 从某个节点打开事件查看器

    打开显示特定节点详细信息的 Windows 事件查看器的命令是什么 例如 如果我只是使用eventvwr命令 它会打开选 择根节点的 UI 我想Application打开时选择的节点或任何其他节点 可以通过编程方式配置吗 Thanks 要查
  • 如何在 Flask-SQLAlchemy 中同时设置一对多和一对一关系?

    我试图在 Flask SQLAlchemy 中同时创建一对一和一对多关系 我想实现这个目标 一个群组有许多成员和一名管理员 这是我所做的 class Group db Model id db Column db Integer primar
  • iPhone - 将 CTFont 转换为 UIFont?

    我正在尝试将 CTFont 转换为 UIFont 而不丢失任何样式和属性 例如 字体名称 字体大小 字体颜色 下划线 Bold Italic etc CTFontRef ctFont NSString fontName NSString C
  • CSS:如何让输入字段自动调整其宽度

    我有一个名为包装器的 div 它使用 margin 属性水平居中 该包装器的宽度是固定的 在该包装器内 我有一个 a 标签 后跟一个输入字段 我正在寻找的是让输入字段的宽度自动调整为右侧的剩余宽度 直到包装器的边框 我想避免以像素为单位定义
  • JavaFX TableView 中的属性绑定不起作用

    我跟踪了许多链接并找到了在表视图中显示复选框的解决方案 但我无法更改表视图中复选框的值 我关注的链接 如何在 JavaFX 中将复选框添加到 TableView https stackoverflow com questions 72176
  • 更改 3D 绘图的垂直 (z) 轴的位置

    我正在 Python 中使用 Matplotlib 绘制一些 3D 曲面图 并注意到一个恼人的现象 根据我设置视点 相机位置 的方式 垂直 z 轴在左侧和右侧之间移动 下面是两个例子 示例 1 轴左 http i imagebanana c
  • 如何在flutter中使用工作管理器运行后台进程?

    我想使用 Flutter Workmanager 我在 kt 中做了引用的配置 如下所示 package com example mybackprocess import be tramckrijte workmanager Workman
  • Android“后退”按钮操作

    我可以将默认 Android 后退 按钮的操作分配给另一个按钮吗 我的意思是 无需编写代码 是否有预定义的 返回 方法 Thanks 按钮添加的onClickonBackPressed public void onClick onBackP
  • 在命令行上获取 git-commit-ids

    跑步时git commit fixup beefca7e或者当在提交消息中引用先前的提交时 我必须在笨拙的工作流程中使用鼠标 我使用bash 打开一个新的终端选项卡 窗口 窗格 git log oneline graph 扫描列表以查找相关