1

我正在使用git. 的要求之一git repositorybare = true. 它使用接收后挂钩来管理来自本地计算机的推送。问题是有时我想使用 wp-admin 在线视图更改我网站上的 WordPress 目录。那么我就ssh进入目录并运行git --work-tree="BLAH" add .git --work-tree="BLAH" commit -m "BLAH". 有没有办法设置一个别名,就像alias git="git --work-tree=\"BLAH\""它适用于所有git命令?

4

3 回答 3

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您只需将以下内容添加到.bashrcor .profile

export PATH=/home/username/bin:$PATH

或者,如果您正在为 root 用户执行此操作:

export PATH=/root/bin:$PATH
于 2016-10-07T03:16:16.550 回答
1

如果有人好奇我是如何解决它的(感谢shellter 的评论),我编写了一个 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
于 2016-10-07T04:00:15.410 回答
0

里面有一个.bashrc文件Linux。您可以编辑它以创建alias您最喜欢和常用的命令。

要创建别名,请将别名永久添加到您的 .bashrc 文件中

gedit ~/.bashrc

别名应如下所示:

alias al='cmd'

你可以在这里阅读更多关于它的信息。

于 2016-10-07T03:03:23.280 回答