如何创建此git别名?
我使用此命令导出指定提交中的所有文件 我想做一个别名,这样我就不需要每次都键入这个长命令 我试过:如何创建此git别名?,git,alias,Git,Alias,我使用此命令导出指定提交中的所有文件 我想做一个别名,这样我就不需要每次都键入这个长命令 我试过: git config --global alias.he "archive --output=\"$1\" --format=zip HEAD \$(git diff --name-only \"$2\" \"$3\") 但是,当我运行git he 1.zip COMMIT1 COMMIT2时,它会提示 error: unknown option `name-only' 有人能帮我吗 谢谢我建
git config --global alias.he "archive --output=\"$1\" --format=zip HEAD \$(git diff --name-only \"$2\" \"$3\")
但是,当我运行git he 1.zip COMMIT1 COMMIT2时,它会提示
error: unknown option `name-only'
有人能帮我吗
谢谢我建议为此使用shell别名。我在bash配置文件中定义了几个别名
alias gs='git status '
alias ga='git add '
alias gb='git branch '
alias gc='git commit'
alias gd='git diff'
alias go='git checkout '
我通常只使用
gs
而不是git status
。但是这会给你一个主意。将命令本身的双引号改为单引号,如下所示:
git config --global alias.he "archive --output='$1' --format=zip HEAD \$(git diff --name-only '$2' '$3')
无需在双引号中转义单引号。只需打开终端并键入
pico ~/.gitconfig
并将其粘贴到您的凭据下
[alias]
ci = commit
cm = commit -am
br = branch
newbr = checkout -b
delbr = branch -d
showbr = for k in `git branch|sed s/^..//`;do echo -e `git log -1 --pretty=format:"%Cgreen%ci %Cblue%cr%Creset" "$k" --`\\t"$k";done|sort
co = checkout
df = diff
dfc = diff --staged
changes=diff --name-status -r
diffstat=diff --stat -r
lg = log --graph --oneline --pretty=format:'%Cred%h%Creset - %C(yellow)%s%Creset %C(green)<%an<%Creset' --abbrev-commit
new = !sh -c 'git log $1@{1}..$1@{0} "$@"'
llog = log --date=local
fork = remote add -f
[别名]
ci=提交
cm=提交-am
br=分支
newbr=签出-b
delbr=分支-d
showbr=在'git branch | sed s/^../`中表示k;do echo-e`git log-1--pretty=格式:“%Cgreen%ci%Cblue%cr%Creset”“$k”-\\t“$k”;完成|排序
co=结帐
df=diff
dfc=差异——分阶段
更改=差异--名称状态-r
diffstat=diff--stat-r
lg=log--graph--oneline--pretty=format:“%Cred%h%Creset-%C(黄色)%s%Creset%C(绿色)别名通常不采用位置参数。更好的方法是编写一个简短的脚本——假设您想使用您提到的语法(git-he 1.zip-COMMIT1-COMMIT2
),将脚本命名为git-he
,并将其放在路径中的某个位置(例如,如果您是唯一的预期用户,请将其命名为${HOME}/bin
,或者/usr/local bin
,以便更广泛地访问):
对于无法识别的子命令,git
将在路径中搜索名为git-
的脚本。最好对中的参数进行一些健全性检查,并确保chmod+x//git he
我建议不要这样做。git-st-etc相当标准
[alias]
ci = commit
cm = commit -am
br = branch
newbr = checkout -b
delbr = branch -d
showbr = for k in `git branch|sed s/^..//`;do echo -e `git log -1 --pretty=format:"%Cgreen%ci %Cblue%cr%Creset" "$k" --`\\t"$k";done|sort
co = checkout
df = diff
dfc = diff --staged
changes=diff --name-status -r
diffstat=diff --stat -r
lg = log --graph --oneline --pretty=format:'%Cred%h%Creset - %C(yellow)%s%Creset %C(green)<%an<%Creset' --abbrev-commit
new = !sh -c 'git log $1@{1}..$1@{0} "$@"'
llog = log --date=local
fork = remote add -f
#!/bin/sh
git archive --output="$1" --format=zip HEAD $(git diff --name-only "$2" "$3")