> \"${GIT_PREFIX}.gitignore\"; -6ren">
gpt4 book ai didi

git - 创建一个 git 别名以附加到 .gitignore

转载 作者:太空狗 更新时间:2023-10-29 13:26:34 26 4
gpt4 key购买 nike

我在 Windows (msysgit) 上使用 git 1.9.0,我有以下别名:

ignore = "!f() { echo $1 >> \"${GIT_PREFIX}.gitignore\"; }; f"

我是这样使用它的:

$ git ignore /Directory/Subdir/

这应该附加到当前目录中我的 .gitignore 文件,或者如果它不存在则创建它。但是由于某种原因,我传递的路径被转换为绝对路径,我不确定为什么:

这是附加到我的 .gitignore 的内容:

C:/Program Files (x86)/Git/Docs/Doxygen/html/

发生这种情况的原因是什么?

编辑

如果我只是像这样使用命令:

$ git ignore Docs/Doxygen/html

它不会转换路径。因此,在将参数传递给别名之前,开头的正斜杠似乎在 shell 中引起了一些问题。用引号括起来也不能解决问题。我很茫然!

编辑 #2

试过这个:

$ git ignore \/Docs/Doxygen/html/
C:/Program Files (x86)/Git/Docs/Doxygen/html/

正斜杠之前的反斜杠也不能解决这个问题。

编辑 #3

我认为这是 msysgit 中的错误。我在 cygwin 中做了同样的事情,看看会发生什么:

$ git ignore /Docs/Doxygen/html/
/Docs/Doxygen/html/

:-(

最佳答案

msys 的转换规则记录在 POSIX path conversion 上页面。

An argument with a leading / is converted up to the first /

根据文档,您应该在路径前加上//以仅对第一个斜杠进行转换,并将正斜杠转换为反斜杠:

//foo\bar ➜ /foo/bar ➜ \ converted to /

Try,

$ git ignore "//Directory\Subdir\"

还有,

$ git ignore //Directory\\Subdir\\

关于git - 创建一个 git 别名以附加到 .gitignore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21945872/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com