我正在尝试使用 git 和 bash 脚本对我的代码进行回归测试。所以我编写了一个脚本来运行当前版本和一些以前版本的示例。源文件位于“src”目录中,样本位于不同的“samples”目录中。“src”和“samples”目录都由 git 在同一个项目下跟踪。
我只想回滚“src”文件,而“samples”中没有触摸文件。我试过 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 命令我确实看到了源文件,我在正确的位置。
有任何想法吗?