我在Windows 10上使用Git(2.39.2.windows.1)和Qt Creator 7.0.2。我希望Git在当前打开的Qt Creator示例中显示特定版本的文件(如git show <revision>:<relative/path/to/file>
)。
或者,Qt Creator有一些Git集成,但我在Extras〉Git下没有看到这种可能性。
Qt Creator的-block
选项为我提供了很多功能。
qtcreator -block path/to/file.cpp
然后我在Qt Creator示例中打开该文件,直到我在那里关闭它。但是如果我将git show
的分页设置为qtcreator -block
,那么当我运行git show <file>
时什么也不会发生。
我还尝试了语法qtcreator -block $1
来指定调用者需要一个参数(这将是指定版本的文件副本,由调用分页程序的Git获取),但这并没有做更多的事情,所以仍然没有什么。
2条答案
按热度按时间lyr7nygr1#
根据上面的注解,您可能需要指定
GIT_PAGER
或PAGER
环境变量:分页器应该从stdin读取,这意味着您可能需要创建一个小的 Package 器脚本来执行此操作,然后将内容写入临时文件:
然后在rc文件中指定
GIT_PAGER
:然后,当运行
git show
时,寻呼机将被拾取。然而,这有一个巨大的缺点,那就是
GIT_PAGER
环境变量将被git log
、git diff
等拾取。这意味着您应该将寻呼机指定为配置选项:
正如配置名称所示,这将设置“show”子命令的寻呼机。
如果您不喜欢bash,那么我确信用Python、Perl、JavaScript或其他语言重写它很容易。
wh6knrhe2#
从@Andreas Louv获得的知识、见解和想法,你可以用这种方式为你的文件取一个好名字。
下面是我的一个小命令,用于输入您的
.gitconfig
:或
说明:
假设我想键入:
我们可以选择
git parse $1
解析出HEAD^^^^^
,其中$1
是传递给这个新函数showq
的第一个参数。这将输出完整的散列,比如a1b2c3d4e5f67890a1b2c3d4e5f67890a1b2c3d4
。然后我们将其回送/传输到cut
,以便只接受前7个字符,这与散列相同。这将生成a1b2c3d
或
然后我们放一个
_
。然后对于文件名(参数
$2
),我们只取基本名称。然后,我们使用适当的参数运行原始的
git show
,并要求它输出到一个名为as constructed的文件中。然后我们调用Qt Creator,Qt Creator显示我们当前正在查看
<7 char hash OR rev-syntax>_<basename>
,例如在我们的示例a1b2c3d_file.c
ORHEAD^^^^^_file.c
中。由于它具有相同的扩展名,因此Qt Creator照常解析和着色它。那我们就把它取出来。
答对了!