2

Git で現在のブランチを参照するために使用できる bash 変数を作成しようとしています: $branch のようなものです。

追加するとき:branch=$(git symbolic-ref --short -q HEAD)に、新しい端末を起動するとbash_profile: を取得し続けます。fatal: Not a git repository (or any of the parent directories): .git

さらに、echo $branchブランチ名を出力しませんgit symbolic-ref --short -q HEAD

ブランチ名を出力するのではなく(プロンプトに既に表示されています)、次のようなことを行うために使用できるようにしたいと思います。

git push origin $branch

4

1 に答える 1

3

現在のブランチは、現在のディレクトリによって異なります。 2 つの git 作業ツリーがあり、~/a~/bの場合、入力cd ~/aすると 1 つのブランチに移動し、入力cd ~/bすると別のブランチに移動できます。

したがって、設定しようとして$branch.bash_profileうまくいきません。$branch作業ツリーを変更するたびに更新する必要があります。また、現在の作業ツリーのブランチを変更できるコマンドの後で更新する必要があります。

最も簡単なことは、変数を設定しないことです。代わりに、エイリアスを作成します。

alias branch='git symbolic-ref --short -q HEAD 2>/dev/null'

そして、次のように使用します。

git push origin $(branch)

または、古い学校の場合は次のようにします。

git push origin `branch`

本当に環境変数を設定したい場合、最も簡単な解決策は、プロンプトを出力するたびに設定することです:

_prompt_command () {
    export branch=$(git symbolic-ref --short -q HEAD 2>/dev/null)
}
export PROMPT_COMMAND=_prompt_command

注: と をチェックして、既に を設定しているかどうかを確認する必要が.bash_profileあり.bashrcますPROMPT_COMMANDbranchその場合は、プロンプト コマンドとして既に実行している関数を設定するだけです。

于 2013-08-12T22:25:58.947 に答える