Thread (1 message) 1 message, 1 author, 2016-06-15

Re: Git commit won't add an untracked file given on the command line

From: Matthieu Moy <hidden>
Date: 2016-06-15 22:45:40

Francis Galiegue [off-list ref] writes:
Le Tuesday 18 November 2008 22:12:37 Mark Burton, vous avez écrit :
quoted
Hi,

When I try:

git commit -m "New file." .gitignore

Where .gitignore is not yet tracked, I get:

error: pathspec '.gitignore' did not match any file(s) known to git.

Is that result by design, sloth or bug (or me being stupid)?
You must "git add .gitignore" first. And yes, this is by design.
If it's by design, then it's a documentation bug:

     -o, --only
        Make a commit only from the paths specified on the
        command line, disregarding any contents that have been
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        staged so far. This is the default mode of operation of
        ^^^^^^^^^^^^^
        git-commit if any paths are given on the command line,

We have here a case where having staged content before doing commit -o
actually changes its behavior.

Looking at the code, this happens because the "file" list is actually
a pattern list (so that you can "git commit '*.txt'" or so), and the
pattern is looked for in the index (the error is raised in
"list_paths").
You could also have done git commit -a -m "themessage".
Well, he could have done that, but then the result would have been
different ;-).

-- 
Matthieu
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help