Ketika saya menjalankan git menyalahkan pada file (menggunakan msysgit) saya selalu mendapatkan jenis cetakan berikut:
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200 1) package co
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200 2) {
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200 3) impor
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200 4) impor
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200 5) impor
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200 6) impor
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200 7) impor
yaitu menampilkan semua baris sebagai Belum Berkomitmen.
Saya mencoba ini pada banyak file, yang memiliki banyak komit - selalu hasilnya sama. Saya juga mencoba menggunakan jalur relatif / lengkap, tetapi tampaknya tidak ada bedanya.
Ketika saya mencoba menggunakan kesalahan TortoiseGit, itu selalu menunjukkan setiap baris sebagai yang terakhir dikomit pada komit pertama:
bahkan berpikir, seperti yang saya katakan, sebenarnya ada puluhan komit dalam sejarah file ini ..
Ide ide?
Edit - Info Lebih Lanjut
- Git menyalahkan berfungsi dengan baik di GitHub, tempat repo ini di-host.
- Ini juga berfungsi dengan baik jika saya mengkloningnya ke mesin linux dan melakukan kesalahan di sana
- Tampaknya hanya pada msysgit ini tidak berfungsi
git
windows-subsystem-for-linux
msysgit
blame
Assaf Lavie
sumber
sumber
Jawaban:
git blame file.txt
menyalahkan versi file.txt dalam copy pekerjaan Anda. Jika file.txt memiliki Windows-newlines (CRLF) di repo dan Anda punyacore.autocrlf = true
, maka setiap baris file.txt akan dianggap berbeda dan akan dilaporkan olehgit blame
sebagai belum dikomit.Alasan mengapa
git blame <my_branch>
(atau bahkan lebih baikgit blame HEAD
, yang berfungsi di cabang mana pun Anda berada) berfungsi, adalah karena itu tidak menyalahkan versi copy pekerjaan sehingga tidak ada potensi baris yang belum dikomit.sumber
git blame -w
mengabaikan spasi, jadi Anda masih bisa menyalahkan copy pekerjaan jika diinginkanMenemukan solusinya - sangat aneh.
Jika saya menjalankan ini:
Sejarahnya rusak, seperti yang diposting di atas.
Jika saya melakukan ini sebagai gantinya:
Berhasil!
Ini sangat aneh, karena AFAICS penggunaan tidak memerlukan nama cabang:
sumber
git blame mybranch cmakelists.txt
dan itu akan gagal; tetapi jika saya menulisgit blame mybranch CMakeLists.txt
itu akan berhasil.Mulai git 2.0.1 (25 Juni 2014), git menyalahkan harus berhenti melaporkan semua baris "Belum Berkomitmen".
Lihat commit 4d4813a (26 Apr 2014) oleh brian m. carlson (
bk2204
) .(Digabung oleh Junio C Hamano -
gitster
- di commit e934c67 , 06 Jun 2014)sumber
git config -l
keluaran Anda (dan tautan kembali ke jawaban ini): yang memungkinkan saya dan orang lain untuk mencoba dan melihat apakah masalah tetap ada.Kemungkinan lain: salah ketik nama file yang case-sensitive
Saya memiliki masalah yang sama dengan git menyalahkan file.txt, kemudian menyadari bahwa saya telah membuat kesalahan ketik nama file yang peka huruf besar kecil dengan file.txt
Mengubahnya menjadi File.txt (misalnya), dan saya mendapatkan hasil yang diharapkan tanpa harus menentukan my_branch: git menyalahkan File.txt
sumber