Fishから.gitディレクトリを使用して最も近い親ディレクトリにCDを移動するには?

Fishから.gitディレクトリを使用して最も近い親ディレクトリにCDを移動するには?

私は魚の皮を使用しました。場合によっては、複数のレベルの下にあるサブディレクトリのサブディレクトリにいる場合は、ディレクトリを使用して最も近い親ディレクトリに戻りたい場合があります。.gitなぜなら、このディレクトリは言えばルートプロジェクトディレクトリを表すからです。

たとえば、次のようなレイアウトがあるとします。

./
└── countries/
    ├── .git/
    └── regions/
        └── cities/

私がいる場所に関係なく、countries/このcountries/regions/コマンドcountries/regions/cities/を使用してディレクトリをに変更したいと思いますcountries/。なぜならが含まれているからです.git

Fishでこれをどのように実行しますか?

ベストアンサー1

git rev-parseCDに引数を印刷する "--show-cdup"オプションがあります。

set -l cd (git rev-parse --show-cdup 2>/dev/null); and cd $cd

これは2>/dev/null「gitリポジトリではありません」というエラーを排除し、この場合はfalseを返すため、git rev-parse --show-cdupgitリポジトリの外部で使用すると何もしません。cd

またはを使用することもできますgit rev-parse --show-toplevel。私はこれが--show-cdup起こると合理的に確信しています。物理したがって、シンボリックリンクを介してgitリポジトリに入ると、誤った答えが印刷される可能性があります。

おすすめ記事