我看到有人收到的截屏视频
git st
git ci
上班。当我这样做时,我得到一个错误,问我是否有其他意思 作为一个git newb,我需要知道你必须做些什么来完成这项工作?
答案 0 :(得分:871)
基本上你只需要在~/.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。
答案 1 :(得分:157)
正如其他人所说,通过编辑.gitconfig
或使用~/.gitconfig
命令
git config --global alias.<alias> <git-command>
文件中添加适当的添加git别名的方法
以下是我的~/.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别名。
最后,为了真正减少击键次数,我将以下内容添加到我的~/.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'
答案 2 :(得分:58)
我认为最有用的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
答案 3 :(得分:16)
您需要git config alias
命令。在Git存储库中执行以下命令:
git config alias.ci commit
对于全局别名:
git config --global alias.ci commit
答案 4 :(得分:8)
这对我有用:
bco = "!f(){ git branch ${1} && git checkout ${1}; };f"
在:
$ git --version
git version 1.7.7.5 (Apple Git-26)
答案 5 :(得分:7)
这将为st
创建别名status
:
git config --add alias.st status
答案 6 :(得分:6)
您可以为git和non-git命令添加别名。看起来这是在1.5版本中添加的。我Mac上2.5.4版本git config --help
页面的摘录显示:
如果别名扩展以感叹号作为前缀,则将其视为shell命令。
例如,在您的全局.gitconfig
文件中,您可以:
[alias]
st = status
hi = !echo 'hello'
然后运行它们:
$ git hi
hello
$ git st
On branch master
...
答案 7 :(得分:5)
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
答案 8 :(得分:4)
$ 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.
答案 9 :(得分:3)
对于那些希望在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>
答案 10 :(得分:3)
将以下几行添加到主目录中的〜/ .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
。别名下的其他命令也是如此。
答案 11 :(得分:2)
为了让别名比其他答案中提到的标准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完成。该软件包为你的dotfiles添加了一个bash函数,适用于osx,linux和windows。此外,与其他别名不同,它别名git
- &gt; g
以及第二个参数。
答案 12 :(得分:2)
您可以使用git的配置设置自定义git别名。这是语法:
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
答案 13 :(得分:1)
这里给出Aliases。即使这里有很好的答案,我补充说是因为 它在windows和linux中有所不同
答案 14 :(得分:1)
如果您使用'!',也可以链接命令运算符以生成shell:
aa = !git add -A && git status
这将添加所有文件,并为您提供$ git aa
的状态报告。
要想方便地检查别名,请添加此别名:
alias = config --get-regexp ^alias\\.
然后快速$ git alias
会为您提供当前的别名以及他们的操作。
答案 15 :(得分:1)
我创建了别名dog
来显示日志图:
git config --global alias.dog "log --oneline --graph --all --decorate"
并按以下方式使用它:
git dog
答案 16 :(得分:1)
.gitconfig
中添加多个别名文件我建议使用.gitconfig
include作为别名。一旦开始创建别名,您可能会得到很多别名。他们可能是您想与他人分享的东西。将它们放在专用文件中可以轻松共享。您的团队甚至可以使用git repo来保存共享别名。当然,您也不想共享某些别名,因此请将其保存在私有别名文件中。
[include]
path=src/dotfiles/.gitaliases
[include]
path=src/team-utils/gitaliases
[include]
path=.gitaliases.private
答案 17 :(得分:0)
Windows的另一种可能性是使目录中填充了包含快捷键的.bat文件。文件名是要使用的快捷方式。只需将目录添加到PATH环境变量中,您就可以在cmd窗口中找到所有快捷方式。
例如(gc.bat):
git commit -m %1
然后您可以在控制台中执行以下命令:
gc "changed stuff"
我将此作为答案添加的原因是因为在使用此功能时,您不仅限于git ...
命令。
答案 18 :(得分:0)
我在用户目录 (vim ~/.profile) 的 .profile 中添加了所有别名命令。
alias gs='git status'
alias gp='git pull'
alias gph='git push'
alias gd='git diff | mate'
alias gau='git add --update'
alias gc='git commit -m'
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'
alias gfo='git fetch origin'
然后,我在 bash 和 zsh shell 中添加了 source 命令。
在 bash shell (vim ~/.bashrc)
source ~/.profile
在 zsh shell ( vim ~/.zshrc )
source ~/.profile
答案 19 :(得分:0)
alias s="git status"
您的食指将原谅您一生遭受的所有痛苦。
答案 20 :(得分:0)
单行设置
$ 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 --
希望更快。
答案 21 :(得分:0)
对我(我在终端机上使用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"
答案 22 :(得分:0)
答案 23 :(得分:0)
如果你想要一个~/.gitconfig
选项的替代方案并且可以继续挖掘更多,另一个选择是通过将它们包装在一个全局节点包中来完全自定义git命令。
在package.json中,您定义了root命令(例如:gt
),然后过滤特定命令以执行正确的git命令。例如,git checkout my-branch
可以是gt co mybranch
。
&#34; christian-git&#34; npm上的包使用这种方法:https://github.com/alexmacarthur/christian-git
答案 24 :(得分:-1)
要在 Git 中创建任何别名,请使用以下命令:
┌─[root@parrot]─[/home/devil/Git] └──╼ #git config --get-regexp 别名
别名状态
alias.c 提交
┌─[root@parrot]─[/home/devil/Git] └──╼ #git s
在分支master上
无需提交,工作树干净
┌─[root@parrot]─[/home/devil/Git] └──╼ #git status
在分支master上
无需提交,工作树干净