git と bash スクリプトを使用してコードの回帰テストを実行しようとしています。そのため、現在のバージョンと以前のバージョンでサンプルを実行するスクリプトを作成しました。ソースファイルは「src」ディレクトリにあり、サンプルは別の「samples」ディレクトリにあります。「src」ディレクトリと「samples」ディレクトリの両方が、同じプロジェクトの下で git によって追跡されます。
「src」ファイルのみをロールバックし、「samples」には touch ファイルをロールバックしたくありません。git reset と git checkout を試しました。
問題:ターミナルで「src」に移動して次のように入力すると:
git checkout -- *.F90
このディレクトリ内の Fortran ファイルのみを変更します。
bash スクリプトで同じコマンドを実行すると、ファイル "src" と "samples" のすべてが変更されます。「git checkout」または「git reset origin/master」のように、メインディレクトリから実行された場合のように...どうすればよいでしょうか?
どこかで、スクリプトで「env -i」を使用するという提案を見つけましたが、それも機能しませんでした。
スクリプト全体は約 500 行で、git 関連の部分は次のとおりです。
cd $dsrc # go to src directory
ls # debuging, just to see , that I am there
git stash
git checkout origin/master -- *.F90
ls コマンドを使用すると、ソース ファイルが表示されます。適切な場所にいます。
何か案は?