1

を使ってWebサイトを運営していgitます。の要件の 1 つはgit repositorybare = true. post-receive フックを使用して、ローカル コンピューターからのプッシュを管理します。問題は、オンラインの wp-admin ビューを使用して、Web サイトの WordPress ディレクトリを変更したい場合があることです。そのsshため、ディレクトリに入って and を実行git --work-tree="BLAH" add .git --work-tree="BLAH" commit -m "BLAH"ます。alias git="git --work-tree=\"BLAH\""すべてのgitコマンドで機能するように、エイリアスを設定する方法はありますか?

4

3 に答える 3

2

alias素晴らしいツールになる時があります。次に、シェルスクリプトの方が優れているところで、物事が複雑になり始める場合があります。

他のコマンドを実行する単一のコマンドを作成するには、ファイルを作成して (おそらくそれを と呼びます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/bingit-add-all次に、代わりに実行するだけです./git-add-all

さらに良いのは、独自の個人用スクリプト ディレクトリを作成し、それを に含めることです$PATH。私は個人的に使用します~/bin。ディレクトリを追加するには、次をまたは$PATHに追加するだけです。.bashrc.profile

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

または、root ユーザーに対してこれを行っている場合:

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

誰かが私がそれをどのように解決したかに興味がある場合(シェルターのコメントに感謝します)、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 に答える