Git tek bir dosya / dizin nasıl yüklenir


216

Aşağıdaki komutu denedim:

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

Git 1.5.2.1 sürümünde bir hata alma:

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.

Tekli dosya veya dizin için bu sözdizimi yanlış mı?

CEVAP: Argümanlar edildi bu sırada beklenen ...

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

GÜNCELLEME: artık katı değil :)


1
Sürümünüzün doğru olduğundan emin misiniz? Güncellenmesi için 1.5.2.1? 1.5.2.1 şu anda 4 yaşın üzerindedir.
CB Bailey

Git'i yükseltmenizi engelleyen bir şey var mı?
Adam Dymitruk

BTW: Bu eski bir tariften çıkan bir sanal makineydi. Yerel Git günceldi, bu versiyonun eski olduğunu fark etmedi. Sıkılık değişti.
doublejosh

Yanıtlar:


352

Argümanlarınız yanlış sırada. Deneyin git commit -m 'my notes' path/to/my/file.extya da daha açık olmak istiyorsanız git commit -m 'my notes' -- path/to/my/file.ext.

Bu arada, git v1.5.2.1 4.5 yaşında. Daha yeni bir sürüme güncellemek isteyebilirsiniz (1.7.8.3 geçerli sürümdür).


2
İyi bir gözlem yaparsınız. Bununla birlikte, ilginç bir şekilde Windows üzerinde Git 1.7.5.1 blithely kabul ediyorgit commit path_to_file -m 'message'
Sri Sankaran

@SriSankaran: Görünüşe göre sıra dışı argümanları tanımayı öğrettiler. Ancak belgelere göre, doğru sıra, dosya listesini son sıraya koymaktır ve belgelenmiş belgelere sadık kalmak muhtemelen iyi bir fikirdir.
Lily Ballard

Teşekkürler. Bu mesajların sırası değişti ... ya da en azından siparişin katılığı değişti;)
doublejosh

1
@DavidDimalanta: Ne demek istiyorsun?
Lily Ballard

1
@ihebiheb şimdi herhangi olmayan başka bayrak parametrelerini görmüyorum sağ Looking git commitcevabı tahmin böyledir "hiç", ama birçok diğer Git komutları --ile, örneğin (diğer serbest form Tartışmalarınızın farklılaşacaktır yolları önler bir yol dan bunun yerine bir düzeltme aralığı olarak yorumlanıyor)git log--
Lily Ballard


16

Dosyayı içeren klasördeyseniz

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

1
zaten dosyadaysam, önde gelen bir "./" (nokta eğik çizgi) gerekir mi? kullanabilir git commit -m "my note" name_of_file.txtmiyim
Chris22

@ Chris22 "Dosyada zaten varsa" ile ne demek istediğinden emin değilim (belki "dizinde" demek istedin? ") ./Sadece normal yol sözdizimi, ama evet, bu örnekte gerekli değil.
Jonathan Cross

7

-oSeçeneği kullanın .

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

-o, --sadece belirtilen dosyaları taahhüt eder


Bu seçenek gerekli değildir. Commit komutunuza bir dosya sayfası eklerseniz, yalnızca bu dosyaları işler.
doublejosh

Daha fazla param ile uğraşırken emin olmak isteyip istemediğinizi bilmek güzel, örn.--amend
Tomas Varga

5

Girilen tamamlama mesajından sonra yolu belirtin, örneğin:

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

4

Windows 7'de git 1.9.5 için: "Notlarım" (çift tırnak) bu sorunu düzeltti. Benim durumumda dosya (ları) -m 'mesajından önce veya sonra koymak. fark yaratmadı; tek tırnak kullanmak sorun oldu.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.