Magit'te başka bir işlemden bir dosyayı nasıl teslim alırım


16

foo.txtŞubede bir dosya var Ave foo.txtşubeden Bdizine göz atmak istiyorum . Komut satırında şunu yaparım:

$ git checkout B -- foo.txt

Günlüğe giderek, ilgilendiğim taahhüdü bularak (örneğin l o B), foo.txtbazı komutları bulup çalıştırarak bunu magit olarak yapmak istiyorum, ancak nasıl yapılacağını anlayamıyorum .


Bu artık bir özellik isteği github.com/magit/magit/issues/2184 . Baktığınız için teşekkürler,
koruyucular

Yanıtlar:


21

Magit 2.11.0'dan itibaren bu doğrudan reset dağıtıcısından mümkündür ( X fve revizyonu ve dosyayı belirtebilirsiniz):

resim açıklamasını buraya girin

Bu, magit-file-checkoutsürüm özelliği ve dosya adını kabul eden magit içinde programlı olarak yapılabilir (@Emoses özellik isteği ve @Kyle Meyer uygulaması sayesinde). Daha önce işlev adlandırılmıştı magit-checkout-file(v2.3.0 - v2.9.0'dan).


4
magit-checkout-fileartık kullanılmıyor. magit-file-checkoutBunun yerine kullanın .
Sagar Jha

3

Bunu yapmanın yerleşik bir yolunun farkında değilim.

A dalında olduğunuzu varsayarsak, başka bir yaklaşım da B dalını ( d r ..B) dağıtmak ve sonra ilgilendiğiniz dosyaya ataşımaktır.

Bir dosyayı bir revizyondan sıfırlamak veya teslim almak için yapılandırmamda bir komut var, ancak geçerli durumunda, tam olarak ne istediğine uymuyor çünkü Magit Revision'da iyi bir revizyon varsayılanı sunmuyor modu.

(defun km/magit-reset-file (rev file &optional checkout)
  "Reset FILE from revision REV.

If prefix argument CHECKOUT is non-nil, checkout FILE from REV
instead.

\(git reset REV -- FILE)
\(git checkout REV -- FILE)"
  (interactive
   (let ((rev (magit-read-branch-or-commit "Revision")))
     (list rev (magit-read-file-from-rev rev "File") current-prefix-arg)))
  (magit-with-toplevel
    (magit-run-git (if checkout "checkout" "reset")
                   rev "--" file)))
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.