我创建了一个名为--
的文件。如何将其添加到git存储库?
$ git status
On branch master
Initial commit
Untracked files:
(use "git add <file>..." to include in what will be committed)
--
nothing added to commit but untracked files present (use "git add" to track)
我知道我可以git add .
,但我不想。我想知道如何专门添加名为--
的文件。
我试过了:
$ git add --
Nothing specified, nothing added.
Maybe you wanted to say 'git add .'?
$ git add "--"
Nothing specified, nothing added.
Maybe you wanted to say 'git add .'?
$ git add '"--"'
fatal: pathspec '"--"' did not match any files
$ git add \-\-
Nothing specified, nothing added.
Maybe you wanted to say 'git add .'?
那么,如何添加名为--
的文件来准备提交?
答案 0 :(得分:6)
您可以使用:
git add ./--
或:
git add $PWD/--
甚至:
git add -- --
这些都是处理不恰当命名的文件的标准技术,这些文件看起来像命令的选项,但实际上是文件。这些技巧的标准要求是rm -f ./--
或mv ./-- ./something-meaningful
。
强烈建议您不要创建名为--
的文件。
根据POSIX的授权,它通常是Unix命令的标准含义。许多命令使用它来标记选项的结尾,并指出&#39;文件名&#39; (非选项)参数跟在--
参数之后。
所以几乎每次你需要对文件做一些事情时,你都要特别对待它的名字。这不值得。任何试图在你的存储库上与你合作的人都会讨厌你。您甚至无法对其进行编辑:vim --
不会编辑文件--
!好;有一些方法可以对其进行编辑,例如vim ./--
和vim -- --
,但这是令人讨厌的。 (您无法cat
该文件;您无法在文件中使用less
或more
;您无法cp
或{ {1}}文件;您无法使用mv
列出文件,...)
答案 1 :(得分:4)
git add -- --
第一个--
告诉Git停止解析选项并接受作为文件名后的所有内容。
答案 2 :(得分:4)
git add -- --
。
&#34; - &#34;在git命令中用于将路径与选项分开。