Как выполнить команды alias в git?
Я увидел скринкаст, где кто-то получил
git st
git ci
работать. Когда я это делаю, я получаю сообщение об ошибке, спрашивая меня, имею ли я что-то еще.
Являясь git newb, мне нужно знать, что вам нужно сделать, чтобы сделать это?
Ответы
Ответ 1
В принципе вам просто нужно добавить строки в ~/.gitconfig
[alias]
st = status
ci = commit -v
Или вы можете использовать команду git config alias:
$ git config --global alias.st status
В unix используйте одинарные кавычки, если псевдоним имеет пробел:
$ git config --global alias.ci 'commit -v'
В окнах используйте двойные кавычки, если псевдоним имеет пробел или аргумент командной строки:
c:\dev> git config --global alias.ci "commit -v"
Команда alias даже принимает функции как параметры. Взгляните на aliases.
Ответ 2
Как говорили другие, подходящий способ добавления алиасов 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'
Ответ 3
Я думаю, что самый полезный gitconfig такой, мы всегда используем 20% -ную функцию в git, вы можете попробовать "g ll", это удивительно, подробности:
[user]
name = my name
email = [email protected]
[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
Ответ 4
Вам нужна команда git config alias
. Выполните следующие действия в репозитории Git:
git config alias.ci commit
Для глобального псевдонима:
git config --global alias.ci commit
Ответ 5
Это сработало для меня:
bco = "!f(){ git branch ${1} && git checkout ${1}; };f"
на
$ git --version
git version 1.7.7.5 (Apple Git-26)
Ответ 6
Это создаст псевдоним st
для status
:
git config --add alias.st status
Ответ 7
Вы можете использовать как команды 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
...
Ответ 8
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
Ответ 9
$ 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.
Ответ 10
Для тех, кто ищет выполнение команд оболочки в псевдониме git, например:
$ 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>
Ответ 11
Добавьте следующие строки в ваш ~/.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
например. То же самое относится и к другим командам под заголовком псевдонима.
Ответ 12
Чтобы получить псевдонимы, даже более короткие, чем стандартный способ конфигурации git, упомянутый в других ответах, я создал пакет npm mingit (npm install -g mingit
), так что большинство команд станут 2 символами вместо 2 слов. Здесь примеры:
g a . // git add .
g b other-branch // git branch other-branch
g c "made some changes" // git commit -m "made some changes"
g co master // git checkout master
g d // git diff
g f // git fetch
g i // git init
g m hotfix // git merge hotfix
g pll // git pull
g psh // git push
g s // git status
и другие команды были бы так же коротки. Это также завершает завершение bash. Пакет добавляет функцию bash к вашим dotfiles, работает в osx, linux и windows. Кроме того, в отличие от других псевдонимов, это псевдонимы git
→ g
, а также второй параметр.
Ответ 13
Вы можете установить собственные псевдонимы git, используя git config. Вот синтаксис:
git config --global alias.<aliasName> "<git command>"
Например, если вам нужен псевдоним для отображения списка файлов, которые имеют конфликты слияния, выполните:
git config --global alias.conflicts "diff --name-only --diff-filter=U"
Теперь вы можете использовать приведенную выше команду только с использованием "конфликтов":
git conflicts
# same as running: git diff --name-only --diff-filter=U
Ответ 14
Здесь приводится Aliases. Даже здесь есть отличные ответы, я добавил это, потому что
он отличается в windows и linux
Ответ 15
Вы также можете цепью команд, если вы используете '!' оператора для создания оболочки:
aa = !git add -A && git status
Это добавит все файлы и даст вам отчет о состоянии с помощью $ git aa
.
Для удобного способа проверки ваших псевдонимов добавьте этот псевдоним:
alias = config --get-regexp ^alias\\.
Затем быстрый $ git alias
дает вам текущие псевдонимы и то, что они делают.
Ответ 16
Еще одна возможность для окон - иметь каталог, заполненный файлами .bat, в которых есть ваши ярлыки. Имя файла - это ярлык, который нужно использовать. Просто добавьте каталог в переменную среды PATH, и у вас есть все ярлыки в вашем распоряжении в окне cmd.
Например (gc.bat):
git commit -m %1
Затем вы можете выполнить следующую команду в консоли:
gc "changed stuff"
Причина, по которой я добавляю это в качестве ответа, заключается в том, что при использовании этого вы не ограничены только командами git ...
.
Ответ 17
Если вы хотите альтернативу опции ~/.gitconfig
и открываете для копания немного больше, другой вариант состоит в том, чтобы написать полностью пользовательские команды git, обернув их в глобальный пакет node.
В вашем пакете .json вы должны определить корневую команду (пример: gt
), а затем отфильтровать конкретные команды для выполнения правильных команд git. Например, git checkout my-branch
может быть gt co mybranch
.
Пакет "christian- git" на npm использует этот метод: https://github.com/alexmacarthur/christian-git
Ответ 18
Скриншот PFA моего файла .gitconfig
со следующими псевдонимами
[alias]
cb = checkout branch
pullb = pull main branch
Ответ 19
Для меня (я использую 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"
Ответ 20
Я создал псевдоним dog
для отображения графа журнала:
git config --global alias.dog "log --oneline --graph --all --decorate"
И используйте его следующим образом:
git dog