Re: Git commit won't add an untracked file given on the command line
- From
Matthieu Moy <matthieu.moy@imag.fr>
- Date
- Nov 18, 2008, 22:16 UTC
- Message-ID
- <vpq8wrg7k9k.fsf@bauges.imag.fr>
- In-Reply-To
- <200811182227.20076.fge@one2team.com>
Francis Galiegue <fge@one2team.com> writes:
Show 15 quoted lines
> Le Tuesday 18 November 2008 22:12:37 Mark Burton, vous avez écrit : >> 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