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 :)


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).


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


16

Jika Anda berada di folder yang berisi file tersebut

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

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


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

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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.