繁体   English   中英

在bash中为git命令提供参数

[英]Supply argument to git command in bash

我不太了解bash,目前我有这个别名:

alias pushAndTrackBranch="git push -u origin" #Append branchname

之后我在其中手动输入git分支名称的位置。我想自动使用当前分支,所以我发现:

git branch | grep \* | cut -d ' ' -f2

并尝试将它们这样组合:

git branch | grep \* | cut -d ' ' -f2 | git push -u origin
git push -u origin | git branch | grep \* | cut -d ' ' -f2
git branch | grep \* | cut -d ' ' -f2 | pushAndTrackBranch
git branch | grep \* | cut -d ' ' -f2 | echo | pushAndTrackBranch

运气不是一个管道的答案,所以我认为从bash_profile开始,我会将分支名称分配给变量并打印出来:

function pushAndTrack {
  myBranch=$(grep \* | cut -d ' ' -f2)
  echo myBranch
}

以上是我最新的化身,但这是不正确的。 如何将这两件事放在一起? 我什至应该将分支名称保存在变量中吗?

编辑:我在函数尝试中看到我忘记了尝试保存在变量中的命令的一部分。 当然应该是:

function pushAndTrack {
  myBranch=$(git branch | grep \* | cut -d ' ' -f2)
  echo $myBranch
}
git push -u origin $(git branch | grep '\*' | cut -d ' ' -f2)

这应该做的工作。 管道将前一个命令的输出传递给下一个命令的stdin,而不是作为命令行arg。

您也许还可以使用xargs (手册页)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM