我使用git
管理网站。 git repository
的要求之一是bare = true
。它使用post-receive hook来管理来自本地计算机的推送。问题是,有时我想使用在线wp-admin视图对我网站上的WordPress目录进行更改。那么我只需ssh
进入目录并运行git --work-tree="BLAH" add .
和git --work-tree="BLAH" commit -m "BLAH"
。有没有办法设置别名,比如alias git="git --work-tree=\"BLAH\""
,并且可以用于所有git
命令?
答案 0 :(得分:2)
有些时候alias
是一个很棒的工具。然后有时候事情开始变得太复杂,而shell脚本更好。
要创建执行其他命令的单个命令,只需创建一个文件(可能称之为git-add-all
),然后输入以下内容:
#! /bin/bash
git --work-tree="BLAH" add .
git --work-tree="BLAH" commit -m "BLAH"
然后您只需执行以下操作即可运行脚本:
bash git-add-all
更好的是,让脚本可执行:
chmod +x git-add-all
然后你可以像任何命令一样使用它:
./git-add-all
为了能够从任何git目录运行脚本,您可以将文件复制/移动到$PATH
中的一个目录。例如/usr/loca/bin
。然后,您只需运行git-add-all
而不是./git-add-all
。
更好的方法是创建自己的个人脚本目录并将其包含在$PATH
中。我个人使用~/bin
。要将目录添加到$PATH
,您只需将以下内容添加到.bashrc
或.profile
:
export PATH=/home/username/bin:$PATH
或者如果您是为root用户执行此操作:
export PATH=/root/bin:$PATH
答案 1 :(得分:1)
如果有人好奇我是如何解决它的(感谢shellter's comment),我写了一个bash脚本然后提示用户输入如下:
#!/bin/bash
function fix {
git --work-tree="PATH_TO_WORKING_TREE" $1
}
echo -n "git "
read -e INPUT
until [ "$INPUT" = "quit" ]; do
fix $INPUT
echo -n "git "
read -e INPUT
done
运行它:
user@server [repo.git] $ git-fix
git status
# On branch master
nothing to commit (working directory clean)
git quit
答案 2 :(得分:0)
.bashrc
中有Linux
个文件。您可以对其进行编辑,以便为您喜爱和常用的命令创建alias
。
要创建别名,请将别名永久添加到.bashrc文件
gedit ~/.bashrc
别名应如下所示:
alias al='cmd'
您可以通过here了解更多信息。