Linux中的别名多个命令

时间:2016-10-07 02:57:27

标签: linux git bash alias website-deployment

我使用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命令?

3 个答案:

答案 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了解更多信息。