如何使bash假设所有命令都是git命令?

时间:2012-12-03 15:27:03

标签: git bash alias

我可以使用bash来假设命令始终是git命令吗?

我的意思是:

如果我写了push origin master,那么它会执行git push origin master

注意:我会在git bash(Windows环境)中使用它,所以我不需要常规命令(ls,cd等)来工作。

4 个答案:

答案 0 :(得分:2)

您可以为常用命令添加别名,例如push将成为git push等。此解决方案需要指定您正在使用的所有命令,但不应该破坏任何命令。

答案 1 :(得分:2)

你可能想尝试这个小的git shell,而不是:

gitsh () {
    while read -r -p "gitsh> " -a GITCOMMAND; do
        git "${GITCOMMAND[@]}"
    done
}

定义该函数后,运行一次,它将处于无限循环中, 读取命令行并将其作为选项传递给git命令。

编辑:根据gniourf_gniourf的建议,将-e选项添加到read命令,可以为您提供一个很好的基于Readline的环境,您可以在其中检索和编辑历史记录。

答案 2 :(得分:1)

假设“git bash”与常规bash类似,请使用command_not_found_handle函数:

function command_not_found_handle {
  command git "$0" "$@"
}

http://www.gnu.org/software/bash/manual/bashref.html#Command-Search-and-Execution

存在发送git无意命令的可能性,但这就是你在问题中要求的内容。

答案 3 :(得分:0)

您可以将名为push,commit等的脚本添加到PATH中。这样你的shell就会有push,commit等“命令”。这应该适用于您使用的任何shell,而不仅仅是bash。