【问题标题】:Get current branch and store as variable using bash [duplicate]使用bash获取当前分支并存储为变量[重复]
【发布时间】:2019-12-01 20:53:00
【问题描述】:

当我使用 Kubernetes 时,我想运行依赖于我的活动分支的命令。因此,在给定当前分支的情况下,拥有别名将帮助我处理自动运行命令的其他别名。

我正在尝试使用函数将当前活动本地分支的名称存储到 bash 别名中,这样我就可以运行其他脚本而不必担心指定活动分支,但我一直遇到错误。

function branch ()
{
    local result='git branch | grep ^\* | cut -c 3-';
    echo "$result"
}

alias get_branch=$(branch)

但是当我尝试运行它时,我得到:

    usage: git [--version] [--help] [-C <path>] [-c <name>=<value>]
               [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
               [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare]
               [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
               <command> [<args>

.... (Same output as just entering 'git')

(cut -c 3- 删除* 和它后面的空格,当活动的 git 分支被列出时) 例如

* feature/ch20372 ch20372 ch12345

奇怪的是这两项工作:

alias IMLAZY='git branch |grep \* | cut -d " " -f2'
alias TEST='git branch | grep ^\* | cut -c 3-'

这让我思考

  1. 我的~/.bash_aliases 可能是语法问题吗?

  2. ZSH 有问题吗?

  3. 函数中某处的语法错误 定义?

【问题讨论】:

  • @EncryptedWatermelon 不...这仅与该问题相关。当然,我正在使用类似的命令,但我想知道如何将其保存在函数的 bash 别名中。
  • 该错误似乎与您显示的代码无关。
  • 输入get_branch会怎样?
  • 我刚刚尝试运行您的代码,它运行正常。你是如何运行这个 sn-p 代码的?您收到的错误与代码似乎不相关。

标签: bash git


【解决方案1】:

使用适当的管道命令可能更简单:git rev-parse

(此处为当前分支命名为 gitcb,可以是任意的)

alias gitcb='git rev-parse --abbrev-ref HEAD'

【讨论】:

  • 我没有投反对票,但 OP 特别要求在标题中使用 bash。
  • @EncryptedWatermelon 是的,我想知道这是否是投反对票的原因。但不确定 OP 是否真的需要一个 bash 别名。我认为这可能是他的一个错误假设,并等待澄清。但是你很可能是对的。无论如何,我们的两个解决方案都有效,我想他会没事的:-)
  • 是的,需要是 bash 别名,在问题中阐明推理/目的
  • @Dave Liu 感谢您的澄清。编辑。
  • @DaveLiu 你为什么要编写一个函数来生成别名的主体,为什么你首先“需要”一个别名?
【解决方案2】:
alias IMLAZY='git branch |grep \* | cut -d " " -f2'

:)

【讨论】:

  • 当我尝试重写时,我想我的 bash 会话中可能存在语法错误。似乎我以某种方式错误地定义了函数,但仍然不确定我做错了什么。我仍然很困惑为什么 this 和 alias git_branch='git branch | grep ^\* | cut -c 3-' 以前不起作用。
  • 不确定。 alias git_branch='git branch | grep ^\* | cut -c 3-' 为我工作
  • git branch | grep '*' 是一种反模式。使用git rev-parse --abbrev-ref HEAD获取分支名称
猜你喜欢
  • 1970-01-01
  • 2020-04-14
  • 2013-07-16
  • 2016-02-13
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
  • 2022-11-21
  • 1970-01-01
相关资源
最近更新 更多