Як я можу відкрити певну версію файлу за допомогою Magit?


43

Чи можливо відкрити певну версію файлу в Emacs за допомогою Magit без зміни поточної гілки?

Я переглянув деякі локальні зміни до редакції, де змінені функції були замінені функціональністю в іншому файлі. Я хотів би відкрити стару редакцію своїх змін в окремому буфері, щоб я міг порівнювати зміни поряд.

Моє поточне хакі- рішення було запущено git show <branch pre-rebase>:file > old_fileта відкрито old_fileв Emacs.


1
github.com/pidu/git-timemachine може тимчасово переглянути файл між кожною версією.
— kuanyui

1
@kuanyui Я використовую, git-timemachineале оскільки мій код був перезавантажений, я не думаю, що він буде працювати, оскільки старий код не є частиною історії поточної галузі
— Девід Холм

Відповіді:


56

Ви можете переглянути файл для певної редакції за допомогою M-x magit-find-file RET <filename> RET.

Або ви можете спочатку переглянути diff для фіксації, натиснувши RETна нього, перейдіть до файлу всередині diff, а потім RETзнову натисніть .


8
Це працює для мене; ось що я роблю: з поточної версії файлу M-x magit-log-buffer-fileпереміщуйте рядок до потрібної фіксації, потім M-x magit-find-file. Тоді значенням за замовчуванням буде це фіксація. Мені потрібно дати шлях до файлу, оскільки це не вибирається з буфера журналів.
— Ліам

@tarsius, дещо схожий на magit-find-файл, але там, де мені потрібно вибрати лише версію файлу поточного буфера. Чи існує вона вже?
— ergosys

Так, використовуйте magit-find-fileсебе з буфера відвідування файлів, а потім просто введіть RETу другому підказці (відповідний файл пропонується як за замовчуванням).
— Тарсій

Дякуємо за інформацію та всю вашу роботу над Magit. Зламати функцію, яка пропускає цей прискіпливий додатковий натискання клавіші, було не так складно, тому я щасливий, поки не з’явиться наступний свербіж.
— ergosys

29

Можна обійтися звичайним VC (вбудованим в Emacs), без Magit. Введіть C-x v ~та введіть потрібну версію. Він розуміє теги та хеші SHA1, а також звичайні ~1суфікси тощо.


Це не відповідь на магічне запитання. Ви б опублікували відповідь С на питання про Рубі?
— Брайан Еш

4
@BryanAsh так, якщо рішення в C настільки простіше.
— Маркус Штраус
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.