2013-06-16 7 views
52

Soru, Emacs işlevi için Magit ana modu ve komut satırı arabirimi aracılığıyla bunun nasıl yapılacağı hakkında daha az şey.Magit tekil dosyayı geri döndürüyor

Sadece yerel bir Git deposu var. Seçilen bir dosyayı önceki sürümüne nasıl geri yüklerim? Bunun için Git komutunun git checkout HEAD^ path/to/file gibi bir şey olması gerektiğine inanıyorum ama burada da yanlış olabilirim, sadece gerçekten tahmin ediyorum.

Aradığım şey, esasen vc-dir arabelleğinde C-x v u ile aynı şeydir.

Esasen, ben ne umuyordum oldu:

  • değiştirilmiş dosyayı silmek. Yerel repodan alın. Magit bunu mümkün görünmüyor

Ama , bunun yerine onu geri yükleme, sadece dosyayı silmek tercih gibi görünüyor.

+0

(1) Magit history buffer kesinlikle (bunu nasıl hatırlamamış olsam da) destekliyor, başka yöntemlere mi ihtiyacınız var (ör. * Magit-status * ')? (2) Sadece üsse geri dönmek isterseniz, neden 'vc' küçük modunu kullanmayın C-x v u '? – lukstafi

+0

Kapsanmamış değişiklikleri (yani, şu anki sürümüne geri dönmek) veya önceki bir işleme geri dönmekten mi bahsediyorsunuz? 'git checkout HEAD dosyası ', kabul edilmeyen değişiklikleri iptal ederdi. 'git checkout HEAD^file 'ayrıca, depoya yapılan en son taahhütte dosyaya yapılan değişiklikleri (varsa) geri döndürür. Söz konusu dosya söz konusu dosyayı içermediyse, '^' etkin bir şekilde yedeklenir. "Silme ve çekme" özetinizle giderken, sadece kabul edilmeyen değişiklikleri atmak istersiniz, bu durumda Rémi'nin cevabı istediğinizdir. – phils

cevap

66

Magit'te, geri almak istediğiniz iri veya dosyaya gitmeniz ve bir değişikliği iptal etmek için k'u kullanmanız yeterlidir. Daha fazla ayrıntı için https://magit.vc/manual/1.4/magit/Staging-and-Committing.html adresindeki ilgili belgelere bakın.

+1

Eylem, onu kullandığınız yere göre değişir. Dosya, git ile izlenmezse dosyayı siler. Ancak dosya izlenirse, değişikliği iptal eder. Dosyanız gitdikten sonra, geçmişi geçmişten tamamen silmek zor. –

+2

Oldukça makul bir şekilde tersine, 'commit' den sonra da kullanılabileceğini düşünüyorum: eğer dosyayı başka değişikliklerle birlikte yaparsanız, 'v' ile geri döndürebilirsiniz ve sonra 'k' istediğiniz yerde ters dönüş yapabilir değişiklikleri korumak için. – lukstafi

12

Dosya açıkken M-x magit-file-checkout.

+0

Emacs/magit'in hangi versiyonu? –

+0

Magit 2.3.0'den beri kullanılabilir. –

+2

'magit-checkout-file 'kullanımdan kaldırıldı, bunun yerine' magit-file-checkout' kullanıldı. – xged