Git sürümlerini kullanarak bir dosyanın değişiklik geçmişini görüntüleme | tutuappapks.com
Bireysel dosyanın Git geçmişini nasıl görüntüleyebilirim, değiştirilenlerle ilgili ayrıntıları tamamla?
Bu bana dosyanın taahhüt geçmişini gösterir, ancak dosya değişikliklerinin her birinin içeriğine nasıl ulaşabilirim?
MS SourceSafe'den geçiş yapmaya çalışıyorum ve bu basit bir şeydi. right-click → show history.
Yukarıdaki bağlantı artık geçerli değil. Bu bağlantı bugün çalışıyor: Git Topluluk Kitabı - chris
Bunun için kullanacağım:
veya dosya adlarını geçmiş adlarını takip etmek
Ama daha önce yukarıdaki gibi 'git suçlama' ile birleştiren bir araçtan daha çok bir dosya kaynağım var. - Egon Willighagen
Ne yazık ki, bu geçmişe ait dosyaların geçmişini takip etmiyor. - Dan Moulding
Ayrıca daha önce yeniden adlandırılmış dosyaların geçmişini aradım ve önce bu ipliği buldum. Çözüm Phil'in işaret ettiği gibi "git log --follow <dosyaadı>" kullanmaktır. İşte. - Florian Gutmann
Yazar bir komut satırı aracı arıyordu. Gitk GIT ile birlikte gelirken, ne komut satırı uygulaması ne de özellikle iyi bir GUI. - mikemaccana
Bir komut satırı aracı mıydı? "sağ tıklama -> geçmişi göster" kesinlikle bunu ima etmez. - hdgarrood
Git her günlük girişi için düzeltme ekleri oluştursun.
Daha fazla seçenek için - gerçekten çok güzel şeyler yapabiliriz :) Sadece belirli bir işlem için fark almak için
veya tanımlayıcı tarafından herhangi bir revizyon. Veya kullan
değişiklikleri görsel olarak taramak için
Git HEAD tüm dosyaları gösterir, bireysel bir dosyayı nasıl izleyeceğinizi biliyorsunuz (Richard'ın sorduğu gibi)? - Jonas Byström
Kullanıyorsanız: git show <revision> - dosya adı, eğer varsa, bu düzeltme için farklılıkları gösterecektir. - Marcos Oliveira
--stat da yararlıdır. -P ile birlikte kullanabilirsiniz. - Raffi Khatchadourian
Bu harika. gitk artık mevcut olmayan yolları belirlerken iyi davranmıyor. Git log -p - yolunu kullandım. - Paulo Casaretto
Artı gitk boogie canavarı tarafından yapılmış gibi görünüyor. Bu harika bir cevaptır ve orijinal soruya en iyi şekilde uyarlanır. - ghayes
Bu gösterecektir tüm Dosyanın tarihçesi (yeniden adlandırmanın ötesindeki tarih ve her değişiklik için farklılıklar).
Diğer bir deyişle, dosya isminde bar bir zamanlar adı verildi foo, sonra git log -p bar (olmadan --follow seçenek), dosyanın geçmişini yalnızca yeniden adlandırıldığı noktaya kadar gösterir - dosyanın geçmişini, foo. kullanma git log --follow -p bar Dosyanın tüm tarihini, dosya olarak bilinen tüm değişiklikler de dahil olmak üzere gösterir. foo. -p Bu seçenek, her değişiklik için farkların dahil edilmesini sağlar.
Dan'in cevabı tek gerçek olan! git log --follow -p file - zzeroo
Bu gerçek cevap kabul ediyorum. (1) --follow dosya adlarını görmenizi sağlar (2.) -p Dosyanın nasıl değiştiğini görmenizi sağlar (3.) sadece komut satırıdır. - Trevor Boyd Smith
@Benjohn -- seçeneği, Git seçeneklerinin sonuna ulaştığını ve takip eden herşeyi anlatır. -- argüman olarak ele alınmalıdır. İçin git log Bu sadece bir ile başlayan bir yol adınız varsa, herhangi bir fark yaratır. tire. "--Follow" un talihsiz ismine sahip bir dosyanın tarihini öğrenmek istediğini söyle: git log --follow -p -- --follow - Dan Moulding
@Benjohn: Normalde, -- yararlıdır çünkü herhangi bir revision Girdiğiniz dosya adıyla eşleşen adlar, bu gerçekten korkutucu olabilir. Örneğin: Hem bir şube hem de adında bir dosya varsa foo, git log -p foo git günlüğü geçmişini gösterir foodeğil, tarihin dosya foo. Ama @DanMoulding bu yana --follow komut sadece argüman olarak tek bir dosya adı alır, bu daha az gereklidir çünkü revision. Bunu yeni öğrendim. Belki de cevabınızdan onu çıkarmaya haklıydınız; Emin değilim. - NHDaly
Metin tabanlı kalmayı tercih ederseniz, kullanmak isteyebilirsiniz tıg.
Geçmişi tek bir dosyada görüntülemek için kullanın: tig [filename]
Veya ayrıntılı repo geçmişine göz atın: tig
Benzer gitk ancak metin tabanlı. Terminalde renkleri destekler!
Mükemmel metin tabanlı bir araç, harika bir cevap. Başsız sunucuma kurmanın bağımlılıklarını görünce çıldırdım. Tekrar A +++ - Tom McKenzie
Belirli dosyaları tig ile de görebilirsiniz, yani. tig -- path/to/specific/file - gloriphobia
git whatchanged -p filename aynı zamanda git log -p filename bu durumda.
Bir dosyanın içindeki belirli bir kod satırının ne zaman değiştirildiğini de görebilirsiniz. git blame filename. Bu, dosyadaki her satır için kısa bir taahhüt id, yazar, zaman damgası ve kod satırını yazdıracaktır. Bu, bir hata bulduktan sonra ve ne zaman kullanıma sunulduğunu (veya kimin suçu olduğunu) bilmek istediğinizde çok kullanışlıdır.
+1, ama filenamekomutta isteğe bağlı değil git blame filename. - rockXrock
"Yeni kullanıcılar, git-log yerine kullanmaları için teşvik ediliyor. (...) Komut, öncelikle tarihsel nedenlerden dolayı saklanıyor" - ciastek
Veri havuzunuzu görselleştirmek için SourceTree kullanırsanız (ücretsiz ve oldukça iyi) bir dosyaya sağ tıklayıp Seçilen Sele
Ekran (aşağıda) gitk ve listelenen diğer seçeneklerden çok daha dostça. Ne yazık ki (şu anda) bu görünümü komut satırından başlatmanın kolay bir yolu yok - SourceTree'nin CLI'si şu anda sadece repos'u açar.
Özellikle bir dosyanın yeniden adlandırılıp değiştirilmediğini görmenizi sağlayan "Yeniden adlandırılmış dosyaları takip et" seçeneğini beğeniyorum. - Chris
ama yanılmadıkça (lütfen bana bildirin!), sadece gui'de bir kerede iki versiyonu karşılaştırabilir misiniz? Aynı anda birkaç farklı sürümü ayırt etmek için zarif bir arayüze sahip herhangi bir müşteri var mı? Muhtemelen Sublime Text gibi bir yakınlaştırma görünümünde? Bu gerçekten yararlı olurdu. - Sam Lewallen
@SamLewallen Doğru anlıyorsam üç farklı işi karşılaştırmak ister misiniz? Bu, üç yollu birleştirme (benimki, sizinki, üssü) ile benzerdir - genellikle bu strateji, üç rastgele işi karşılaştırmak zorunda olmayan birleştirme çakışmalarını çözmek için kullanılır. Üç yollu birleştirmeyi destekleyen birçok araç var stackoverflow.com/questions/10998728/... ama hile bu araçları belirli revizyonlarla besliyor gitready.com/intermediate/2009/02/27/... - Mark Fox
Teşekkürler Mark Fox, demek istediğim bu. Bunu yapacak herhangi bir uygulamayı biliyor musunuz? - Sam Lewallen
Hayatımı kurtardın. Kullanabilirsiniz gitk bulmak için SHA1 karma, sonra aç SourceTree girmek Log Selected.. bulunan dayalı SHA1. - AechoLiu
Bir revizyon ve yazarın her bir dosyanın son satırını değiştirdiğini göstermek için:
veya güçlü suç GUI kullanmak istiyorsanız:
Onları okuduktan ve biraz oynadıktan sonra diğer cevapların özeti:
Her zamanki komut satırı komutu
Ancak, daha fazla insan tarafından okunabilir bir şekilde bakma yolları sunmak için ya gitk (gui) ya da tig (text-ui) kullanabilirsiniz.
Debian / ubuntu altında, bu güzel araçlar için yükleme komutu beklendiği gibi:
Ve şu an kullanıyorum:
böylece sadece yazabilirim gdf dir alt dizindeki her şeyin odaklanmış bir tarihini almak için dir.
Bence bu harika bir cevap. Belki de oylamada bulunmuyorsunuz çünkü değişik yollarla (IMHO daha iyi) cevapları görebiliyorsunuz, örneğin gitk ve tig ile git'e ek olarak. - PopcornKing
Sadece cevap eklemek için. Yolu bulun (depoda bulunana kadar git boşluğunda). Sonra yukarıda belirtilen komutu kullanın "git log --follow --all -p <folder_path / file_path>". Bu durumda, filde / klasörün tarih boyunca kaldırılacağı, dolayısıyla hala var olan azami yolu bulacağı ve tarihini almaya çalıştığı durumlar olabilir. Eserleri ! - parasrish
--all tüm dallar içindir, geri kalanı da Dan'in cevabında açıklanmıştır. - cregox
Bu diğer adı .gitconfig dosyanıza ekleyin:
Ve şu komutu kullanın:
Çıkış, gitk çıkışı ile hemen hemen aynı görünecektir. Keyfini çıkarın.
O kısayolu kestikten sonra dedim ki, "Güzel!". Ancak, "-" işaretinden sonra "\ n" ifadesinin bir hata olduğunu unutmayın. - jmbeck
Ayrıca kullanılabilir git lg -p filename - aranan dosyanın güzel bir farkını döndürür. - Egel
"BadZipFile: Dosya bir zip dosyası değil" unzipping dosyası sonuçları Chrome Geliştirici Araçları'nda yapılan tüm değişiklikleri göster Ajax ile gönderirken görüntüyü yükleme MR sürümü ne anlama geliyor? İOS 8'de denetleyici yönlendirmesini nasıl zorlayabilirim? 'Doğrulanamaz kod' nedir ve neden kötüdür? GitHub trafik grafiği kendi görünümlerinizi içerir mi?