Cara git melakukan satu file / direktori

216

Mencoba perintah berikut:

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

Menerima kesalahan di git versi 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.

Apakah itu sintaks yang salah untuk file atau direktori yang dikerjakan komit?

JAWABAN: Argumen yang diharapkan dalam urutan ini ...

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

UPDATE: tidak ketat lagi :)

doublejosh
sumber
1
Apakah Anda yakin versi Anda benar? Memperbarui ke 1.5.2.1? 1.5.2.1 sudah lebih dari 4 tahun sekarang.
CB Bailey
Apakah ada yang melarang Anda meningkatkan git?
Adam Dymitruk
BTW: Ini adalah VM yang diputar dari resep lama. Git lokal terbaru, tidak menyadari bahwa versi ini kuno. Ketat berubah.
doublejosh

Jawaban:

352

Argumen Anda salah. Coba git commit -m 'my notes' path/to/my/file.ext, atau jika Anda ingin lebih eksplisit git commit -m 'my notes' -- path/to/my/file.ext,.

Kebetulan, git v1.5.2.1 berusia 4,5 tahun. Anda mungkin ingin memperbarui ke versi yang lebih baru (1.7.8.3 adalah rilis saat ini).

Lily Ballard
sumber
2
Anda melakukan pengamatan yang baik. Namun, menariknya Git 1.7.5.1 di Windows dengan senang hati menerimagit commit path_to_file -m 'message'
Sri Sankaran
@SriSankaran: Kedengarannya seperti mereka mengajarkannya untuk mengenali argumen yang tidak berurutan. Tetapi menurut dokumentasi, urutan yang benar adalah menempatkan daftar file terakhir, dan mungkin ide yang baik untuk tetap berpegang pada versi yang didokumentasikan.
Lily Ballard
Terima kasih. Urutan pesan-pesan ini berubah ... atau setidaknya ketegasan urutan berubah;)
doublejosh
1
@DavidDimalanta: Apa maksudmu?
Lily Ballard
1
@ihebiheb Mencari sekarang saya tidak melihat parameter non-bendera lain untuk git commitjadi saya kira jawabannya adalah "tidak", tetapi dalam banyak git lain memerintahkan --jalur Yang membedakan dari argumen bentuk yang unik lainnya (misalnya, dengan git logyang --mencegah jalan dari ditafsirkan sebagai rentang revisi sebagai gantinya)
Lily Ballard
87

Mencoba:

git commit -m 'my notes' path/to/my/file.ext 
dunia wades
sumber
16

Jika Anda berada di folder yang berisi file tersebut

git commit -m 'my notes' ./name_of_file.ext
Piethon
sumber
1
jika saya sudah ada dalam file, apakah saya memerlukan "//" (dot forward-slash)? bisa saya gunakan git commit -m "my note" name_of_file.txt?
Chris22
@ Chris22 Saya tidak yakin apa yang Anda maksud dengan "jika saya sudah ada dalam file" (mungkin Anda maksudkan "dalam direktori"?) ... ./hanyalah sintaks jalur normal, tapi ya, tidak perlu dalam contoh ini.
Jonathan Cross
7

Gunakan -oopsi.

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

-o, --hanya komit hanya file yang ditentukan

W.Perrin
sumber
Opsi itu tidak perlu. Jika Anda memasukkan halaman file dalam perintah commit Anda, itu hanya akan mengkomit file-file itu.
doublejosh
Baik untuk mengetahui apakah Anda ingin memastikan ketika mengacaukan params lebih lanjut, misalnya--amend
Tomas Varga
5

Tentukan jalur setelah memasukkan komit, seperti:

git commit -m "commit message" path/to/file.extention
Rahul TP
sumber
4

Untuk git 1.9.5 pada Windows 7: "Catatan saya" (tanda kutip ganda) memperbaiki masalah ini. Dalam kasus saya, meletakkan file sebelum atau sesudah -m 'message'. tidak membuat perbedaan; menggunakan tanda kutip tunggal adalah masalahnya.

EddieBaby
sumber