0

私は次のフォルダ構造を持っています...

\GitRepo
    \.git
    [files]
    \IgnoredFolder #ignored from .gitignore
        \SubRepo

.gitconfig ファイルでスクリプト関数を修正しようとしていて、現在のディレクトリを知る必要がありますが、奇妙な動作が発生しています。

すべてのテストで、Windows PowerShell をホストする Console2 ウィンドウを開いて、git コマンドを実行しました。

プロンプトで$pwdと入力すると、C:\GitRepo\IgnoredFolder\SubRepo が「正しく」表示されます。「正しく」と言いますが、*Nix ではなく Windows 形式です。

私の .git 構成では、次のエイリアスを作成しました。

test = "!f() { echo ${PWD}; }; f"

ここで、プロンプトからgit testと入力すると、/c/GitRepo の「正しくない」表示が得られます。Windows と *Nix のフォーマットを無視して、/c/GitRepo/IgnoredFolder/SubRepo を返すことを期待/望んでいたため、「正しくない」と言います。

他のコマンドも同じように動作します (つまり、現在の作業ディレクトリではなく、.git リポジトリを含む最初のフォルダーで動作します。

たとえば、基本的に作成したい実際のエイリアスは、init、add、commit、remote、config のすべてを 1 つのコマンドにまとめたものです。疑似エイリアスは次のようになります...

create = "!f() { git init; git add .; git commit -am "$1"; ... anything else ... }; f"

ただし、現在のディレクトリ (「操作」したい新しい SubRepo フォルダー) で実行する代わりに、git リポジトリ (この場合は c:\GitRepo) を含む最初の祖先フォルダーで動作します。

リポジトリを含むフォルダー内で見つかるかどうかに関係なく、現在のディレクトリで git エイリアス スクリプト関数を機能させる方法はありますか?

前もって感謝します。

4

0 に答える 0