Linux環境では、ディレクトリの下にgitリポジトリを作成します。
/myspace/darshan/repositories
だから、私が取り組む機能やバグごとに別々のgitリポジトリがあります。
次のような他のリポジトリで同じ共通のタスクがいくつかあります。
building an image
copy an image
going to my component directory
など
リポジトリ名のルートを除くと、すべて同じパスにあります。つまり、ビルドイメージが - に位置していると仮定します。
/myspace/darshan/repositories/<feature>/bin/sys/
リポジトリ間で変更される唯一のものはディレクトリです。
上記のタスクのいくつかのエイリアスを作成したいと思います。
build
cp_image
goto_comp
私はワークスペースの深さと私が属しているワークスペースに関係なく、これらすべてのエイリアスが機能したいと思います。
この設定をどのように作成できますか?
答え1
git rev-parse --show-toplevel
1つの可能な方法は、現在のリポジトリのデフォルトディレクトリを出力するためにこれを使用することです。したがって、gitリポジトリのサブディレクトリは$(git rev-parse --show-toplevel)
そのリポジトリのデフォルトディレクトリになります
cd $(git rev-parse --show-toplevel)/bin/sys
bin/sys
常に現在のリポジトリのサブディレクトリに移動します。
Gitリポジトリの外部で使用するときは注意してください。実際にそのリポジトリにあることをまず確認する必要があります。git rev-parse --show-toplevel
Gitリポジトリの外部で実行すると、ゼロ以外の終了コードで終了するため、使用できます。