我看了一个截屏的地方,有人去了
git st
git ci
上班。当我这样做时,我遇到一个错误,问我是否还有其他意思。
作为git newb,我需要知道您需要做什么才能完成此任务?
我看了一个截屏的地方,有人去了
git st
git ci
上班。当我这样做时,我遇到一个错误,问我是否还有其他意思。
作为git newb,我需要知道您需要做什么才能完成此任务?
Answers:
基本上你只需要添加行到 ~/.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命令甚至接受函数作为参数。看看别名。
git config --global
别名~/.gitconfig
代替.git/config
当前存储库。
st
到status -s
(短状态)
'
像git config --global alias.sr 'svn rebase'
"
在添加带空格的命令时将需要使用双引号而不是单引号,例如git config --global alias.ci "commit -v"
正如其他人所说,添加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,我建议git-completion.bash
您通过复制到主目录并从中进行采购来设置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'
~/.bashrc
文件是什么意思?
~/.bashrc
:真正减少按键。正是在寻找什么。
我认为最有用的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
这为我工作:
bco = "!f(){ git branch ${1} && git checkout ${1}; };f"
上:
$ git --version
git version 1.7.7.5 (Apple Git-26)
git cob
。让我想起夏天,就像玉米棒子上的玉米一样。实际上是一个很大的词,我们不会去想足够了...芯是
以下是用于节省时间的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
对于那些希望在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>
git push -f origin HEAD
将当前分支推到其远程对应分支?还有,用力推动的捷径吗?如果您必须足够频繁地推动力量以从快捷方式中受益,那么在您的设置或工作流中的其他地方难道没有什么不对吗?
!git
最后一个git命令代替),但是手动编辑配置文件就可以了。
将以下行添加到主目录中的〜/ .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
例如。别名标题下的其他命令也是如此。
$ git更新 git:'update'不是git命令。参见'git --help'。 你是这个意思吗 更新参考 $ git config --global alias.update'拉-v' $ git更新 来自git://git.kernel.org/pub/scm/git/git = [最新] html-> origin / html = [最新] maint-> origin / maint = [最新]人->出身/人 = [最新]母版->来源/母版 = [最新]下一个->来源/下一个 = [最新] pu-> origin / pu = [最新]待办事项->来源/待办事项 已经是最新的。
我创建了dog
用于显示日志图的别名:
git config --global alias.dog "log --all --decorate --oneline --graph"
并按如下所示使用它:
git dog
您可以使用git的配置设置自定义git别名。语法如下:
git config --global alias.<aliasName> "<git command>"
例如,如果您需要别名来显示具有合并冲突的文件列表,请运行:
git config --global alias.conflicts "diff --name-only --diff-filter=U"
现在,您只能使用“ conflicts”使用上述命令:
git conflicts
# same as running: git diff --name-only --diff-filter=U
为了使别名比其他答案中提到的标准git config更短,我创建了一个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函数,可在osx,linux和Windows上运行。另外,与其他别名不同,它别名git
-> g
以及第二个参数。
如果您想要替代 ~/.gitconfig
选项方案并进一步挖掘,另一个选择是通过将它们包装在全局节点包中来编写完全自定义的git命令。
在package.json中,您将定义root命令(例如:),gt
然后过滤特定命令以执行正确的git命令。例如,git checkout my-branch
可能是gt co mybranch
。
npm上的“ christian-git”包使用以下方法:https : //github.com/alexmacarthur/christian-git
在此给出的别名。即使有伟大的答案在这里,我说这是因为它在Windows和Linux不同
.gitconfig
我建议为您的别名使用一个.gitconfig
include。一旦开始创建别名,您可能会得到很多别名。他们可能是您想与他人分享的东西。将它们放在专用文件中可以轻松共享。您的团队甚至可以使用git repo来保存共享别名。当然,您也不想共享某些别名,因此请将它们保存在专用别名文件中。
[include]
path=src/dotfiles/.gitaliases
[include]
path=src/team-utils/gitaliases
[include]
path=.gitaliases.private
Windows的另一种可能性是在目录中填充.bat文件,并在其中添加快捷方式。文件名是要使用的快捷方式。只需将目录添加到PATH环境变量中,即可在cmd窗口中找到所有要使用的快捷方式。
例如(gc.bat):
git commit -m %1
然后,您可以在控制台中执行以下命令:
gc "changed stuff"
我将其添加为答案的原因是因为使用此方法时,您不仅限于git ...
命令。