Magit ile bir dosyanın belirli bir revizyonunu nasıl açabilirim?


43

Mevcut şubeyi değiştirmeden, Magit ile Emacs'ta bir dosyanın belirli bir revizyonunu açmak mümkün mü?

Bazı yerel değişiklikleri, değiştirilen işlevlerin farklı bir dosyada işlevsellik ile değiştirildiği bir revizyona dönüştürdüm. Değişikliklerimin eski düzeltmesini ayrı bir arabellekte açmak istiyorum, böylece değişiklikleri yan yana karşılaştırabilirim.

Şu anki en sahte çözümüm Emacs’da çalışmak git show <branch pre-rebase>:file > old_fileve sonra old_fileaçmaktı.


1
github.com/pidu/git-timemachine , her sürüm arasındaki dosyayı bir bakışta geçici olarak görüntüleyebilir.
kuanyui

1
@kuanyui kullanıyorum, git-timemachineancak kodum yeniden oluşturulduğundan, eski kodun geçerli şubenin geçmişinin bir parçası olmadığından çalışacağını sanmıyorum?
David Holm

Yanıtlar:


56

Bir dosyayı kullanarak belirli bir revizyon için görüntüleyebilirsiniz M-x magit-find-file RET <filename> RET.

Veya ilk önce RETüzerine basarak , fark içindeki dosyaya gidip ve ardından RETtekrar basarak, farkın işlenmesini isteyebilirsiniz .


8
Bu benim için çalışıyor; İşte ne yapıyorum: Dosyanın mevcut sürümünden M-x magit-log-buffer-file, satırı istenen işleme getirin M-x magit-find-file. Sonra varsayılan değer bu taahhüt olacaktır. Günlük arabelleğinden alınmadığı için dosyanın yolunu vermem gerekiyor.
Liam

@tarsius, magit-find-file gibi biraz ama sadece geçerli tamponun dosyasının revizyonunu seçmem gerekiyor. Zaten var mı?
ergosys

Evet, magit-find-filekendisini bir dosya ziyaret arabelleğinden kullanın ve ardından sadece RETikinci istemde yazın (uygun dosya varsayılan olarak sunulur).
tarsius,

Magit'teki tüm çalışmalarınız ve bilgileriniz için teşekkürler. Bu sinir bozucu ekstra tuş vuruşu atlayan bir işlevi kesmek çok zor değildi, bu yüzden bir sonraki kaşıntı oluşana kadar mutluyum.
ergosys

29

Magit olmadan düz VC (Emacs'a yerleşik) ile yapmak mümkündür. Yazın C-x v ~ve istediğiniz sürümü yazın. Her zamanki ~1etc soneklerinin yanı sıra etiketleri ve SHA1 karmaları da anlar .


Bu magit sorusuna bir cevap değil. Ruby sorusuna C cevabı yazar mısın?
Bryan Ash

4
@ BryanAsh evet, C'deki çözüm çok daha kolaysa.
Markus Strauss
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.