Работа с git в Eclipse(EGit)
Материал из BiTel WiKi
Создание репозитария и подключение к проекту
Нужен пакет git-core. 0. Установить egit в eclipse , если не стоит . Install new software из " http://download.eclipse.org/egit/updates" . Поставить все, что предлагается
1. Ставим пакеты git git-core
2. В preferenses->Team->views->git убираем галочку relative dates.
3. В preferenses->Team->views->git->synchronize убираем галочку "Always run fetch... ".. Путает иначе, всегда вызыввает fetch. потому что используем pull всегда, а не fetch ..Это удобнее и нагляднее.. Чтобы это работало нормально лезем в конфиг .git/config и ставим там rebase = true для всех нужных веток.
4. Для транка, перейти в каталог проектов :
git clone ssh://git@git/~git/bgbilling.git <имя проекта транк>
5. В eclipse создаем java-проект с таким же именем( <имя проекта транк> ), в team делаем share project , там выбираем git, потом ставим галочку(use or create...) и со всем соглашаемся .
Если нужно создавать несколько проектов с разных веток одного репозитария, то понадобится утилита
sudo chmod 777 /usr/share/doc/git/contrib/workdir/git-new-workdir
При использовании этой утилиты проекты используют фактически один локальный GIT репозитарий и должны находиться рядом. Пример создания проектов для веток 5.1 и 5.2:
6. Перейти в каталог проектов:
/usr/share/doc/git/contrib/workdir/git-new-workdir <имя проекта транк> <имя проекта 5.1> 5.1 /usr/share/doc/git/contrib/workdir/git-new-workdir <имя проекта транк> <имя проекта 5.2> 5.2
5. Проделываем 5-ый пункт для каждого из проектов.
Заливка изменений
После разработки изменения в локальной ветке, чтобы внести её в основную одним каммитом можно применить следующий метод:
- Пусть изменение разработано в ветке feature, а внести его нужно в ветку target.
- Перейти в ветку target, сделать merge на неё ветки feature.
- Сделать Reset Mixed ветки target в предыдущее состояние. При этом в ней возникнут все изменения, появившиеся после слияния.
- Сделать каммит ветки target с изменениями.
- Ветка feature останется просто сбоку, в дальнейшем её необходимо удалить.
Вообще в Git есть команда merge squash для подобной операции, но в плагине она пока не поддержана.