Как мне псевдоним команды в Git? - PullRequest
558 голосов
/ 31 марта 2010

Я видел скринкаст, где кто-то получил

git st
git ci

на работу. Когда я делаю это, я получаю сообщение об ошибке, спрашивающее, имел ли я в виду что-то еще.
Будучи мерзавцем, мне нужно знать, что вы должны сделать, чтобы это сделать?

Ответы [ 19 ]

882 голосов
/ 31 марта 2010

В основном вам просто нужно добавить строки к ~/.gitconfig

[alias]
    st = status
    ci = commit -v

Или вы можете использовать команду псевдонима git config:

$ 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 даже принимает функции в качестве параметров. Взгляните на псевдонимы .

158 голосов
/ 31 марта 2010

Как уже говорили другие, подходящий способ добавления псевдонимов git находится в вашем глобальном файле .gitconfig либо путем редактирования ~/.gitconfig, либо с помощью команды git config --global alias.<alias> <git-command>

Ниже приведена копия псевдонима моего ~/.gitconfig файла:

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

Кроме того, если вы используете bash, я бы порекомендовал настроить завершение bash, скопировав git-completion.bash в ваш домашний каталог и получив его из вашего ~/.bashrc. (Мне кажется, я узнал об этом из онлайн-книги 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.

Наконец, чтобы действительно сократить количество нажатий клавиш, я добавил следующее в мой файл ~/.bash_aliases, полученный из ~/.bashrc:

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'
59 голосов
/ 20 февраля 2014

Я думаю, что самый полезный gitconfig такой: мы всегда используем функцию 20% в git, вы можете попробовать "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
16 голосов
/ 31 марта 2010

Вам нужна команда git config alias. Выполните в Git-репозитории следующее:

git config alias.ci commit

Для глобального псевдонима:

git config --global alias.ci commit
9 голосов
/ 24 сентября 2012

Это сработало для меня:

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

на:

$ git --version

git version 1.7.7.5 (Apple Git-26)
7 голосов
/ 31 марта 2010

Это создаст псевдоним st для status:

git config --add alias.st status

6 голосов
/ 04 февраля 2016

Вы можете использовать псевдонимы как git, так и не git. Похоже, это было добавлено в версии 1.5. Фрагмент страницы git config --help в версии 2.5.4 на моем Mac показывает:

Если расширение псевдонима начинается с восклицательного знака, оно будет рассматриваться как команда оболочки.

Например, в вашем глобальном .gitconfig файле вы можете иметь:

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

А затем запустите их:

$ git hi
hello
$ git st
On branch master

...
5 голосов
/ 03 марта 2015

Follwing - это 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
4 голосов
/ 31 марта 2010
$ git update
git: 'update' is not a git command. See 'git --help'.

Did you mean this?
    update-ref

$ git config --global alias.update 'pull -v'

$ git update
From git://git.kernel.org/pub/scm/git/git
 = [up to date]      html       -> origin/html
 = [up to date]      maint      -> origin/maint
 = [up to date]      man        -> origin/man
 = [up to date]      master     -> origin/master
 = [up to date]      next       -> origin/next
 = [up to date]      pu         -> origin/pu
 = [up to date]      todo       -> origin/todo
Already up-to-date.
3 голосов
/ 19 октября 2018

Добавьте следующие строки в ваш ~ / .gitconfig в вашем домашнем каталоге

[alias]
# one-line log
l = log --pretty=format:"%C(yellow)%h\\ %ad%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --date=short
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

a = add
ap = add -p
c = commit --verbose
ca = commit -a --verbose
cm = commit -m
cam = commit -a -m
m = commit --amend --verbose

d = diff
ds = diff --stat
dc = diff --cached

s = status -s
co = checkout
cob = checkout -b
# list branches sorted by last modified
b = "!git for-each-ref --sort='-authordate' --format='%(authordate)%09%(objectname:short)%09%(refname)' refs/heads | sed -e 's-refs/heads/--'"

# list aliases
la = "!git config -l | grep alias | cut -c 7-"

Как только это будет сделано, вы можете, например, сделать git a вместо git add. То же самое относится и к другим командам под псевдонимом заголовок ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...