将别名 "git git" 简化为只有 "git"?

10

我时不时地会打 "git",然后转而想到其他事情,然后再输入例如 "git checkout master"。当然,这让我感到

$ git git checkout master
git: 'git' is not a git command. See 'git --help'.

Did you mean this?
    init
$

有没有一种方法可以创建一个名为 git 的 git 别名,使其无操作?我已经尝试了像“git = ''”、“git = ""”和“git = " "”这样的显而易见的方法,但并不奇怪,它们都会产生诸如“Expansion of alias 'git' failed; '' is not a git command”之类的响应。

1个回答

15
我找到了答案: 将这个别名添加到你的~/.gitconfig文件中:
[alias]
    git = "!git"

过时的回答

与其使用别名,您只需要在路径中拥有名为git-git的脚本,并且脚本内容应为:

#!/bin/bash
git "$@"

当你说 "git git" 时,Git 会寻找 git-git 并将剩余的参数传递给它。当然,通过递归调用,你可以非常心不在焉地反复说 "git":

$ git git git git git git git git git git git git status # <- still works

更新: 昨天我在gitgit status上按下了回车键。所以,在你处理它时,也可以将git-git符号链接到gitgit。这不会无限链接,但仍然可以使用。


2
你能想到任何不良的副作用吗? - jub0bs
我想不出来。它必须是一些具有破坏性的东西,而且很容易被误拼成“git”,对吧? - Ben
我不知道。我只是在问而已。无论如何加1。 - jub0bs
1
我能看到的唯一副作用是,如果git添加了一个命令,这是非常不可能的。 - biw
有人认为git会建议添加git-git.sh补丁吗? - Ben

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接