単一のファイル/ディレクトリをgit commitする方法


216

次のコマンドを試してみました。

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

gitバージョン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.

単一のファイルまたはディレクトリコミットの構文は正しくありませんか?

回答: 引数この順序で予期されていました...

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

更新:それはもう厳密ではありません:)


1
バージョンは正しいですか?1.5.2.1に更新ますか?1.5.2.1は現在4歳以上です。
CBベイリー

gitのアップグレードを禁止しているものはありますか?
Adam Dymitruk、2012年

ところで、これは古いレシピからスピンアップされたVMでした。ローカルGitは最新であり、このバージョンが古いものであることに気づきませんでした。厳格さが変更されました。
doublejosh 14

回答:


352

引数の順序が間違っています。試してみてくださいgit commit -m 'my notes' path/to/my/file.ext、またはあなたがより明確になりたい場合git commit -m 'my notes' -- path/to/my/file.ext

ちなみに、git v1.5.2.1は4.5年前のものです。新しいバージョンに更新することをお勧めします(1.7.8.3が現在のリリースです)。


2
あなたは良い観察をします。しかし、興味深いことにWindows上でGitの1.7.5.1は軽率受け入れgit commit path_to_file -m 'message'
スリランカSankaran

@SriSankaran:順序が正しくない引数を認識するように教えたようです。しかし、ドキュメントによると、正しい順序はファイルリストを最後に置くことであり、おそらくドキュメント化されたものに固執することをお勧めします。
リリーバラード

ありがとう。これらのメッセージの順序が変更されました...または少なくとも順序の厳密さが変更されました;)
doublejosh

1
@DavidDimalanta:どういう意味ですか?
リリーバラード

1
@ihebiheb私は、他の非フラグパラメータが表示されていない、今見るとgit commit、私は答えは「何も」ではありませんが、他の多くのgitにコマンドを推測するよう--に、例えば(他の自由形式の引数から区別パスをより防止パス代わりにリビジョン範囲として解釈されます)git log--
リリーバラード


16

ファイルを含むフォルダにいる場合

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

1
既にファイル内にいる場合、先頭に「./」(ドットスラッシュ)が必要ですか?使用できますgit commit -m "my note" name_of_file.txtか?
Chris22、2016

@ Chris22「ファイルにすでにいる場合」(つまり、「ディレクトリ内」を意味している可能性があります)の意味がわかりません... ./単なる通常のパス構文ですが、この例では必要ありません。
ジョナサンクロス

7

-oオプションを使用します。

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

-o、-指定したファイルのみをコミットする


そのオプションは必要ありません。commitコマンドにファイルページを含めると、それらのファイルのみがコミットされます。
doublejosh 2018年

例えば、さらにパラメータ、いじりときに確認する場合は良いが知っている--amend
トマス・ヴァルガ

5

次のように、入力したコミットメッセージの後にパスを指定します。

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

4

Windows 7上のgit 1.9.5の場合:「マイノート」(二重引用符)がこの問題を修正しました。私の場合、-m 'メッセージ'の前または後にファイルを置きます。違いはありませんでした。一重引用符の使用が問題でした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.