【问题标题】:Creating git aliases创建 git 别名
【发布时间】:2020-01-26 11:53:47
【问题描述】:

我正在尝试在 ubuntu 中添加以下别名

alias l=log --pretty=format:"%C(yellow)%h\\ %ad%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --date=short

$ source ~/.aliases
bash: alias: --decorate: not found
bash: alias: --decorate: not found
bash: alias: --numstat: not found

我可以在 git 外面使用这个命令

我不太清楚为什么?有人能帮我吗?我试着用谷歌搜索,但我并没有走得太远。我不太了解 bash。

【问题讨论】:

标签: bash git alias aliases


【解决方案1】:

这是一个较老的问题,但理解和创建 git 别名非常重要,因为这将节省您的大量时间。

在您的问题中,您几乎可以回答一个愚蠢的错误,即您正在尝试使用脚本创建别名。

别名需要在.gitconfig 文件中定义。不仅仅是别名,还有所有的配置部分,比如

[core][color][pack][help][alias]

我想与您分享一些基本且有用的别名,以方便您使用,您可以根据需要和日常使用进一步更改它

[alias]
    lg = log -p
    lol = log --graph --decorate --pretty=oneline --abbrev-commit
    lola = log --graph --decorate --pretty=oneline --abbrev-commit --all
    st = status
    co = checkout
    ci = commit -a -m
    br = branch
    ls = ls-files
    po = push origin
    f = fetch
    p = pull
    delete = branch -d master
    com = checkout master
    cob = checkout -b
    unstage = reset HEAD
    url = remote set-url origin 
    ign = ls-files -o -i --exclude-standard
    cp = cherry-pick

您还可以为多个 git 命令的组合创建一个别名,例如:

rdev = !git checkout dev && git pull && git checkout - && git rebase dev

如果需要任何其他理解,请告诉我。

【讨论】:

    【解决方案2】:

    你应该在你的 git 别名中设置别名并从命令行使用它

    您可以直接编辑配置文件或从 CLI 进行:

    Git 别名

    使用git config --global alias.<name> 来添加 git 别名

    git config --global alias.l 'log --pretty=format:"%C(yellow)%h\\ %ad%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate'
    

    现在你应该可以使用它了:git l


    Ubuntu 别名

    如果您希望在 Ubuntu 中为您的 shell 添加别名:

    alias gitl='git l'
    

    【讨论】:

      【解决方案3】:

      你快到了。您只需要将别名放在正确的文件中。因为如果您输入部分命令,Git 不会自动推断您的命令,因此您可以使用 git config 轻松为每个命令设置别名,如下所示:

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

      然后你在任何 repo 中使用它的别名:git cigit cogit brgit st

      您还可以通过别名运行外部命令。在这种情况下,您以! 字符开始命令。如果您编写自己的工具来使用 Git 存储库,这将非常有用:

      git config --global alias.visual '!gitk'
      

      您可能还注意到config 命令接受多个参数(如--global 之一)。如果我们查看文档man git config:

      对于写入选项:写入全局 ~/.gitconfig 文件而不是存储库 .git/config,如果 $XDG_CONFIG_HOME/git/config 文件存在且 ~/.gitconfig 文件不存在,则写入该文件。 对于读取选项:仅从全局 ~/.gitconfig 和 $XDG_CONFIG_HOME/git/config 读取,而不是从所有可用文件中读取。 另请参阅“文件”部分。

      还有--system,写入/etc/gitconfig--local,用于本地repo .git/gitconfig,和--worktree,类似于--local

      但您可以直接编辑文件本身。它看起来类似于:

      # in ~/.gitconfig
      [alias]
          lg = log --all --stat --pretty=oneline --graph --format='%h %d %an %cr %s' --oneline
          l = log --all --stat --graph --format='%h %d %an %cr %s'
          up = pull --rebase
          br = branch --verbose -a
          sfp = push --force-with-lease
      

      【讨论】:

        猜你喜欢
        • 2020-10-21
        • 1970-01-01
        • 2015-01-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-23
        • 2013-05-17
        • 1970-01-01
        相关资源
        最近更新 更多