Як я можу відкрити певну версію файлу за допомогою 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.