我看了一段录像,里面有人

git st
git ci

去工作。当我这样做时,我得到一个错误,问我是否我指的是其他东西。 作为一个新手,我想知道你要怎么做才能完成这件事?


当前回答

可以为git和非git命令设置别名。这看起来像是在1.5版中添加的。在我的Mac 2.5.4版本上,git配置帮助页面的一个片段显示:

如果别名展开以感叹号作为前缀,则它将被视为shell命令。

例如,在你的全局.gitconfig文件中,你可以有:

[alias]
    st = status
    hi = !echo 'hello'

然后运行它们:

$ git hi
hello
$ git st
On branch master

...

其他回答

基本上,您只需要在~/.gitconfig中添加行即可

[alias]
    st = status
    ci = commit -v

或者你可以使用git config alias命令:

$ git config --global alias.st status 

在unix中,如果别名中有空格,则使用单引号:

$ git config --global alias.ci 'commit -v'

在windows中,如果别名有空格或命令行参数,则使用双引号:

c:\dev> git config --global alias.ci "commit -v"

alias命令甚至接受函数作为参数。看看别名。

这里给出了别名。即使这里有很好的答案,我加上这个是因为 它在Windows和Linux中有所不同

一行设置

$ git config --global alias.co checkout && git config --global alias.br branch && git config --global alias.ci commit && git config --global alias.st status && git config --global alias.unstage 'reset HEAD --' && git config --global alias.last 'log -1 HEAD'

用法:

$ git st
$ git co
$ git br
$ git ci
$ git last
$ git unstage <file | dir>

一切都将变成:

$ cat ~/.gitconfig

[user]
    name = Sample User
    email = sample@gmail.com
[core]
    filemode = false
    compression = 1
    quotepath = off
    ignorecase = false
[color]
    ui = auto
[alias]
    co = checkout
    br = branch
    ci = commit
    st = status
    last = log -1 HEAD
    unstage = reset HEAD --

希望能快点。

在.gitconfig中包含多个别名文件

我建议使用.gitconfig include作为别名。一旦你开始创建别名,你可能最终会有很多。它们很可能是你想与他人分享的东西。把它们放在一个专用的文件中可以很容易地共享。您的团队甚至可以使用git回购来保存共享别名。当然还有一些你不想分享的别名,所以把它们保存在一个私人别名文件中。

[include]
    path=src/dotfiles/.gitaliases

[include]
    path=src/team-utils/gitaliases

[include]
    path=.gitaliases.private

对于那些希望以git别名执行shell命令的人,例如:

$ git pof

在我的终端将推动当前分支到我的原点回购:

[alias]
    pof = !git push origin -f $(git branch | grep \\* | cut -d ' ' -f2)

在哪里

$(git branch | grep \\* | cut -d ' ' -f2)

命令返回当前分支。

这是手动输入分支名称的快捷方式:

git push origin -f <current-branch>