How to 'git commit' a single file/directory

GitCommit

Git Problem Overview


I tried the following command:

git commit path/to/my/file.ext -m 'my notes'

And received an error in Git version 1.5.2.1:

error: pathspec '-m' did not match any file(s) known to git.
error: pathspec 'MY MESSAGE' did not match any file(s) known to git.

Is that incorrect syntax for a single file or directory commits?

Answer:

Arguments were expected in this order...

git commit -m 'my notes' path/to/my/file.ext

And it's not strict any more :)

Git Solutions


Solution 1 - Git

Your arguments are in the wrong order. Try git commit -m 'my notes' path/to/my/file.ext, or if you want to be more explicit, git commit -m 'my notes' -- path/to/my/file.ext.

Incidentally, Git v1.5.2.1 is 4.5 years old. You may want to update to a newer version (1.7.8.3 is the current release).

Solution 2 - Git

Try:

git commit -m 'my notes' path/to/my/file.ext 

of if you are in the current directory, add ./ to the front of the path;

git commit -m 'my notes' ./path/to/my/file.ext 

Solution 3 - Git

If you are in the folder which contains the file

git commit -m 'my notes' ./name_of_file.ext

Solution 4 - Git

Use the -o option.

git commit -o path/to/myfile -m "the message"

> -o, --only commit only specified files

Solution 5 - Git

Specify the path after the entered commit message, like:

git commit -m "commit message" path/to/file.extension

Solution 6 - Git

For Git 1.9.5 on Windows 7: "my Notes" (double quotes) corrected this issue. In my case, putting the file(s) before or after the -m 'message' made no difference; using single quotes was the problem.

Solution 7 - Git

Suppose you are working on big project and have opened multiple files, and you made changes in single file, when you don't need to write git add ., this will add all the files to git, so you first need to check where you made changes by git status, here you will see all the paths next to the filenames, copy the path of the file where you made change and then write git add path, here path is whole line of path to the file (your modified file). Then you write your commit message by git -m "message" and then push.

This will push only the specified file which you have used with git add file

Solution 8 - Git

You try if you are in the master branch:

git commit -m "Commit message" -- filename.ext

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestiondoublejoshView Question on Stackoverflow
Solution 1 - GitLily BallardView Answer on Stackoverflow
Solution 2 - GitwadesworldView Answer on Stackoverflow
Solution 3 - GitPiethonView Answer on Stackoverflow
Solution 4 - GitW.PerrinView Answer on Stackoverflow
Solution 5 - GitRahul TPView Answer on Stackoverflow
Solution 6 - GitEddieBabyView Answer on Stackoverflow
Solution 7 - GitDanish MehmoodView Answer on Stackoverflow
Solution 8 - GitNur Mohammad Rayhan 181-35-236View Answer on Stackoverflow