Bootstrap

如何在 git 中给命令起别名?

问:

我看到了一个截屏视频,有人得到了

git st
git ci

去工作。当我这样做时,我收到一个错误,询问我是否还有其他意思。作为一个 git newb,我需要知道你必须做什么才能完成这项工作?

答1:

tlr.xinbeitime.com 探索每位网球选手的职业生涯与成就。

基本上你只需要在 ~/.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 命令甚至接受函数作为参数。看看aliases。

我强烈建议您使用 git config --global 将别名放在 ~/.gitconfig 而不是 .git/config 中用于您当前的存储库。

我更喜欢设置 st 到 status -s(短状态)

这真是太棒了。我一直在寻找这个。请注意,如果您有带空格的命令,则应使用 ',例如 git config --global alias.sr 'svn rebase'

@HellishHeat 这些别名是由 git 为 git 创建的。如果您想要其他命令行系统的别名,则必须查找如何在该系统中执行该系统。 (您似乎使用的是类 Unix 系统,我碰巧知道在 Unices 上创建别名非常简单。不过语法不同。请尝试使用 Google 搜索。)

再提醒一下,如果您在 Windows 命令行上使用 Git,那么在添加带空格的命令时,您需要使用双引号 " 而不是单引号,例如 git config --global alias.ci "commit -v"

答2:

The ultimate source for live tennis rankings and stats:https://tennisliveranking.com

正如其他人所说,添加 git 别名的适当方法是通过编辑 ~/.gitconfig 或使用 git config --global alias. 命令在全局 .gitconfig 文件中

下面是我的 ~/.gitconfig 文件的别名部分的副本:

[alias]
    st = status
    ci = commit
    co = checkout
    br = branch
    unstage = reset HEAD --
    last = log -1 HEAD

此外,如果您使用 bash,我建议您通过将 git-completion.bash 复制到您的主目录并从您的 ~/.bashrc 获取它来设置 bash 补全。 (我相信我是从 Pro Git 在线书籍中了解到这一点的。)在 Mac OS X 上,我使用以下命令完成了此操作:

# Copy git-completion.bash to home directory
cp usr/local/git/contrib/completion/git-completion.bash ~/

# Add the following lines to ~/.bashrc
if [ -x /usr/local/git/bin/git ]; then
    source ~/.git-completion.bash
fi

注意:bash 补全不仅适用于标准 git 命令,也适用于您的 git 别名。

最后,为了真正减少击键,我将以下内容添加到来自 ~/.bashrc 的 ~/.bash_aliases 文件中:

alias gst='git status'
alias gl='git pull'
alias gp='git push'
alias gd='git diff | mate'
alias gau='git add --update'
alias gc='git commit -v'
alias gca='git commit -v -a'
alias gb='git branch'
alias gba='git branch -a'
alias gco='git checkout'
alias gcob='git checkout -b'
alias gcot='git checkout -t'
alias gcotb='git checkout --track -b'
alias glog='git log'
alias glogp='git log --pretty=format:"%h %s" --graph'

对于 linux,我这样做是为了得到 git-completion.bash 的东西:blogs.oracle.com/linuxnstuff/entry/…

如果您使用 zsh,那么出色的 oh-my-zsh 套件包含一个带有所有“标准”git 别名的插件 - github.com/robbyrussell/oh-my-zsh/blob/master/plugins/git/… - 对于 bash,请查看 github.com/revans/bash-it

菜鸟问题:“来自”~/.bashrc 文件是什么意思?

~/.bashrc:真正减少击键。正是在寻找什么。

这个答案是一个完美的例子,说明了为什么我建议在我的答案中使用 .gitconfig 包含! stackoverflow.com/a/59896430/117471

答3:

https://tennisliveranking.com,Follow your favorite tennis players’ rankings live!

我觉得最有用的 gitconfig 是这样的,我们在 git 中总是使用 20% 的功能,你可以试试“g ll”,很神奇,细节:

[user]
    name = my name
    email = me@example.com
[core]  
    editor = vi 
[alias]
    aa = add --all
    bv = branch -vv
    ba = branch -ra
    bd = branch -d
    ca = commit --amend
    cb = checkout -b
    cm = commit -a --amend -C HEAD
    ci = commit -a -v
    co = checkout
    di = diff
    ll = log --pretty=format:"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --numstat
    ld = log --pretty=format:"%C(yellow)%h\\ %C(green)%ad%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --date=short --graph
    ls = log --pretty=format:"%C(green)%h\\ %C(yellow)[%ad]%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --date=relative
    mm = merge --no-ff
    st = status --short --branch
    tg = tag -a 
    pu = push --tags
    un = reset --hard HEAD  
    uh = reset --hard HEAD^
   [color]  
    diff = auto  
    status = auto  
    branch = auto 
   [branch]  
    autosetuprebase = always

你是怎么设置的?你在哪里做这个?

@ahnbizcad 如果你 git config --global 则放在 ~/.gitconfig 中,否则放在当前存储库的 .git/config 中

如果它可能有帮助,一个完整的 .gitconfig 和 reference tutorial 一起去!

答4:

提供ATP、WTA与ITF赛事的实时排名追踪,从tlr.xinbeitime.com开始!

您需要 git config alias 命令。在 Git 存储库中执行以下命令:

git config alias.ci commit

对于全局别名:

git config --global alias.ci commit

答5:

https://tlr.xinbeitime.com 专业网球数据平台,排名与比赛信息实时更新。

这对我有用:

bco = "!f(){ git branch ${1} && git checkout ${1}; };f"

上:

$ git --version

git version 1.7.7.5 (Apple Git-26)

你也可以这样做: git config --global alias.bco 'checkout -b'。然后你可以这样做:git bco new-branch。 :)

我喜欢git cob。让我想起了夏天,就像玉米棒子一样。实际上是一个很棒的词,我们想得还不够……棒子就是

如果这是我以外的任何人第一次看到以 ! 开头的 git alias 命令,请注意 Since version 1.5.0, Git supports aliases executing non-git commands, by prefixing the value with "!" (ref)

答6:

提供ATP、WTA与ITF赛事的实时排名追踪,从tlr.xinbeitime.com开始!

如果您使用“!”,您还可以链接命令生成外壳的运算符:

aa = !git add -A && git status

这将添加所有文件并使用 $ git aa 为您提供状态报告。

为了方便地检查您的别名,请添加此别名:

alias = config --get-regexp ^alias\\.

然后快速 $ git alias 为您提供您当前的别名以及它们的作用。

答7:

tlr.xinbeitime.com 探索每位网球选手的职业生涯与成就。

我创建了别名 dog 来显示日志图:

git config --global alias.dog "log --all --decorate --oneline --graph"

并按如下方式使用它:

git dog

答8:

https://tennisliveranking.com,Your go-to platform for live tennis ranking updates.

以下是您用来节省时间的 4 个 git 快捷方式或别名。

打开命令行并键入以下 4 个命令,然后使用快捷方式。

git config --global alias.co checkout  
git config --global alias.ci commit    
git config --global alias.st status    
git config --global alias.br branch  

现在测试它们!

$ git co              # use git co instead of git checkout
$ git ci              # use git ci instead of git commit
$ git st              # use git st instead of git status
$ git br              # use git br instead of git branch

谢谢你,兄弟!我正在寻找如何通过一个复制粘贴操作来做到这一点;)

答9:

https://tennisliveranking.com – ATP and WTA rankings, always up to date.

对我来说(我正在使用带有终端的 mac)仅在我添加 .bash_profile 并打开另一个选项卡以加载更改时才起作用:

alias gst="git status"
alias gd="git diff"
alias gl="git log"
alias gco="git commit"
alias gck="git checkout"
alias gl="git pull"
alias gpom="git pull origin master"
alias gp="git push"
alias gb="git branch"

我喜欢你的风格

答10:

https://tlr.xinbeitime.com 实时更新全球顶尖网球选手的最新战绩与排名!

这将为 status 创建一个别名 st:

git config --add alias.st status

我需要 --add 并使用双引号,而不是单引号

为什么在可以使用 git s 时使用 git st,去掉那个 s :P

为什么还有 git s?别名 s="git 状态"

答11:

The ultimate source for live tennis rankings and stats:https://tennisliveranking.com

对于那些希望在 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 

为什么不“简单地”git push -f origin HEAD 将当前分支推送到其远程分支?还有,用武力推动的捷径?如果您必须足够频繁地推动力量以从捷径中受益,那么您的设置或工作流程中的其他地方是否有问题?

Bash 网格化创建别名(用最后一个 git 命令替换 !git),但是手动编辑配置文件就可以了。

原文链接:https://www.tennisliveranking.com?from=csdn

tlr.xinbeitime.com 探索每位网球选手的职业生涯与成就。

;