Я ищу любой редактор или инструмент, который может одновременно просматривать две разные версии файла в репозитории git.
Аналогичная функциональность есть на github , но она только сравнивает выбранную версию с предыдущей и хотелось бы, чтобы она была более гибкой (например, сравнивала любые две версии файла).
Прочитав ваш последний комментарий на момент написания этой статьи, вы можете легко сделать это с помощью инструмента командной строки под названием Cdiff. Его использование довольно простое и работает с Git, Mercurial и SVN. Он написан на Python, поэтому прекрасно работает в Linux.
Cdiff (с открытым исходным кодом)
Инструмент на основе терминов для просмотра цветных добавочных различий в рабочей области Git/Mercurial/Svn или из стандартного ввода с поддержкой параллельного и автоматического пейджера. Требуется Python (>= 2.5.0) и меньше.
git log -p -2 | cdiff # view git log with changes of last 2 commits git show 15bfa | cdiff -s # view a given git commit, side by side
На самом деле в Git есть специальная команда для этой цели: git difftool
. Откроется любой подходящий редактор, в зависимости от конфигурации; в моей настройке (и, думаю, по умолчанию) это vimdiff :
$ git config --global diff.tool
vimdiff
Это должно быть доступно в любой типичной системе Unix. Это выглядит не совсем красиво (скорее, слишком красочно), но делает то, что вы хотите.
И поскольку это, по сути, просто специальный режим vim, его также можно очень хорошо использовать для редактирования наборов изменений. Например, при простом выполнении git difftool
правое представление на самом деле является файлом в рабочем каталоге. Таким образом, вы можете легко исправить любые изменения прямо в этом редакторе, прежде чем их зафиксировать! (Однако по умолчанию оба файла будут открываться в режиме readopen, поэтому вам действительно нужно :w!
сохранить любые изменения, сделанные в vimdiff
.)
Ах, и еще: чтобы выйти из этого редактора, введите :qa
. Здесь :
стандартный префикс vi для команд ed, q
команда для закрытия ( выхода ) из файла, а постфиксa
применяется ко всем открытым файлам.
Том
Тим