小编And*_*ero的帖子

测试git目录和git分支的正确而快速的方法?

在尝试设置我的新鱼壳提示时,我最终测试了获取分支名称的方法,并测试了我是否在 git 存储库上。我发现(1) git rev-parse --abbrev-ref HEAD , (2) git symbolic-ref HEAD | sed 's/refs\/heads\///'(3) git describe --contains --all HEAD可以很好地解决问题。

我很好奇,因为我喜欢(1)的简单性,但是在一个新的和未受影响的(只是git inited)存储库上,它给了我一个“致命的:”错误,而(2)按预期工作,也就是说,给了我一个默认作为输出。问题是,即使出现“致命:”错误,返回码也是 0。这是预期的行为吗?

为了测试我是否在 git 存储库中,我最终只是测试当前目录是否有一个“.git”文件夹:test -d ".git". 基本的解决方案,但它有效,而且似乎比使用任何 git 命令都要快。

所以,我的问题是:

  1. 那个“fatal:”和(1)不应该返回一个不同于 0 的退出代码吗?如果确实是一个错误,因为我不知道 git 人们如何标准化他们的返回代码,我应该在哪里报告它?
  2. 我知道如果我重定向(1)^ /dev/null(对于那些不知道的人,^与 相同2>),我不会得到错误,但它会说HEAD而不是 master,但如果我cat .git/HEAD,我得到:ref: refs/heads/master。它真的应该说什么?随着master我只是无知和挑剔,因为它应该不是说HEAD?我的意思是在刚刚git …

shell git prompt fish

7
推荐指数
1
解决办法
5791
查看次数

标签 统计

fish ×1

git ×1

prompt ×1

shell ×1