Eclipse и EGit: как легко просмотреть изменения во всех измененных файлах перед фиксацией в* local * repository

Я использую Eclipse Indigo SR2 с (встроенным) плагином EGit V.1.3.0.201202151440-r и не смогли найти способ легко просмотреть все мои изменения перед фиксацией.

Я использовал Eclipse с SVN в течение многих лет, и это всегда было очень легко сделать. Я бы, как правило, щелкните правой кнопкой мыши на моем проекте, выберите Team->Synchronize, дважды щелкните по первому измененному файлу (в перспективе Team Sync), затем нажмите Ctrl-. повторно рассмотреть все изменения в один файл, а затем перейти к следующему файлу, как я написал резюме моих изменений для сообщения фиксации.

но, конечно, git очень отличается от Subversion, и поэтому мой рабочий процесс должен измениться. С EGit "Team Sync", похоже, полезен только для просмотра изменений между моими локальными файлами и удаленным репозиторием (т. е. до нажатия на пульт). Мне нужен способ просмотреть изменения с момента моей последней фиксации на my местные репозитория. Я вообще даже не забочусь о (повторном)обзоре изменения перед нажатием на remote (и если бы я это сделал, я бы предпочел простой эквивалент git log чтобы увидеть, какие коммиты я собираюсь нажать).

если я щелкните правой кнопкой мыши на моем проекте и выберите Team->Commit, мне представлено окно, которое делает почти все, что мне нужно сделать (выберите файлы для этапа, фиксации, напишите сообщение фиксации, измените предыдущую фиксацию и т. д.). Что это!--15-->не позвольте мне сделать это быстро и легко просмотреть все мои изменения в Редакторе сравнения. Я не могу считаю такой возможности не существует! Кажется, я должен дважды щелкнуть по каждому отдельному файлу, просмотреть изменения, закрыть редактор сравнения и дважды щелкнуть по следующему файлу. Это смешно!

TL / DR - я ищу простой эквивалент GUI (в Eclipse), чтобы сделать то, что я легко могу сделать из командной строки с помощью git vimdiff (где vimdiff-это псевдоним git, который использует vimdiff в качестве" difftool " для цикла всех измененных файлов), а затем git commit (С возможно git add или два между ними).

если ни у кого нет хорошего решения, мне интересно, как другие обрабатывают свой рабочий процесс фиксации с помощью EGit. Я отлично справлялся с командными строками (Не то, чтобы Eclipse был доволен этим), но я не могу поверить, что EGit настолько бесполезен, как мне кажется. Возможно, мой google-fu не так силен, как когда-то?

2 ответов


вы знаете о представлении "Git Staging". Он отслеживает все файлы, которые изменились, и вы можете просмотреть изменения в любое время. (Это может быть немного лучше, чем использование диалога фиксации)

альтернативой является фиксация всех изменений без просмотра, а затем используйте представление истории для сравнения двух коммитов (просто выберите последние верхние коммиты, щелкните правой кнопкой мыши и выберите "сравнить друг с другом"). Таким образом, вам не нужно дважды щелкать отдельные файлы. Если вам нужно чтобы изменить что-то, вы всегда можете "изменить" последнюю фиксацию. (Я обычно следую этому подходу)


говорит здесь что вы можете видеть различия между рабочим деревом и любой заданной ссылкой. Возможно, вам стоит попробовать последнюю версию (Juno) Eclipse/EGit и посмотреть, стало ли лучше?

Update: я пробовал это в последнем Eclipse, и, насколько я вижу, он работает нормально. Вот как:

в момент написания этого Eclipse Juno 4.2-это версия, на которую вы должны пойти. На странице загрузки, вы можете выбрать между несколько пакетов согласно вашим потребностям. "Eclipse IDE для разработчиков Java" поставляется в комплекте с EGit, но вы также можете установить EGit в любой дистрибутив с помощью Eclipse Marketplace (в меню справки).

  • после того как вы импортировали ваш проект в Eclipse, убедитесь, что проект "общий":

щелкните правой кнопкой мыши проект - > Команда - > общий проект.. - >Git

теперь сделайте следующее:

  • переключиться на команду Синхронизация Перспективы.
  • нажмите маленькую кнопку Синхронизировать в представлении синхронизировать.
  • Выберите Git
  • выберите подходящую ветку для синхронизации, например refs/remotes/origin/master
  • обязательно установите флажок "Включить локальные незафиксированные изменения в сравнении"
  • Нажмите Кнопку Готово

теперь измените некоторые файлы и посмотрите, как они появляются в представлении синхронизации. Дважды щелкните измененные файлы, чтобы увидеть разницу (как на скриншоте ниже).

Screenshot of Eclipse Juno - EGit Synchronize View