如何从git status获取相对于当前目录的路径?

4
我希望在脚本中使用git status的输出,但由于输出始终给出相对于存储库的文件路径,其他命令无法找到它们的参数。这个问题提到了relativePaths选项,但是当作为命令选项给出时,它对输出没有影响: git -c status.relativePaths=true status --short 如果我在C:\projects\myproject\web\somepage的命令提示符下有一个更改过的文件C:\projects\myproject\config\module\feature.src,那么我需要像这样的路径:
- ..\..\config\module\feature.src - C:\projects\myproject\config\module\feature.src
才能将其传递给我想要调用的其他工具处理新更改的文件。相反,由于存储库位于myproject\中,我尝试的所有选项组合都只产生了
  • config\module\feature.src
那么我该如何获取实际的相对路径,甚至是绝对路径?我是否遗漏了一些基础知识?我正在使用 Windows 7 上的 git 版本 1.9.4.msysgit.2,并将 repo 文件存储在外部文件夹中。我可以提供一份我尝试过但没有成功的事项列表。我可以让我的脚本查询并 cd 到 repo 根目录再运行其他命令,或者自己先手动操作,但这些只是变通方法。

你需要使用relativepaths=false而不是true。 - Andrew C
@Andrew git -c status.relativePaths=false status 仍然会给出相对于代码库根目录的路径。根据所有文档,这应该是可以正常工作的。也许存在一个特定于Windows的错误? - gws
2
不确定。Linux 2.3.0的表现与广告宣传一致。我不使用Windows。 - Andrew C
1个回答

4
你需要使用git config status.relativePaths true。在这里configuration部分中有更多信息。

我不知道我的工作项目怎么回事,但我按照上面的示例路径设置了文件夹结构和新存储库,并且当我在那里使用status.relativePaths时,它产生了预期的效果。如果没有其他因素引入混乱,那么接受这个答案显然是准确的。(目前我会对 msysgit 和相当旧的 Windows 版本持怀疑态度!) - gws

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接