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.