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
- обязательно установите флажок "Включить локальные незафиксированные изменения в сравнении"
- Нажмите Кнопку Готово
теперь измените некоторые файлы и посмотрите, как они появляются в представлении синхронизации. Дважды щелкните измененные файлы, чтобы увидеть разницу (как на скриншоте ниже).