Команда перспектива затмение 'репозиторий' и 'синхронизация'


Я пытаюсь рационализировать две перспективы, которые кажутся связанными (или, по крайней мере, обеспечивают очень похожую функциональность): перспектива "репозитория Git" (которую я получил после добавления EGit) и перспектива "синхронизации команды" (которая, как я думаю, была частью дистрибутива EE).

Насколько я могу судить, мне удалось получить Git репозиторий работающий (с GitHub), или, по крайней мере, большинство функций: окно 'Git Staging' работает нормально, я могу фиксировать, перетаскивая файлы от "Нестагнированных изменений" до "поэтапных изменений", а затем щелкните значок фиксации. Затем я могу протолкнуть свои изменения из окна "Git Repositories", щелкнув правой кнопкой мыши на рабочем пространстве - > Remotes - > origin - > url и выбрав Push из меню (это "правильная" процедура?).

С точки зрения "синхронизации команды", мне не повезло даже настроить его. После выбора пункта " синхронизировать...'frmo меню, мерзавец, затем я вижу стол (что это?). Я пробую различные значения для пункта назначения (в противном случае, невозможно нажать кнопку "Готово"), но независимо от того, что я делаю, он говорит мне "никаких изменений" для всех моих проектов.

Также есть много пунктов контекстного меню, когда вы щелкаете правой кнопкой мыши на проекте и выбираете команду. Что это такое?

2 9

2 ответа:

В CVS синхронизация команды-это единственный разумный способ управления входящими и исходящими изменениями. Вы можете обновить / объединить входящие изменения и зафиксировать исходящие изменения из этого представления. Поскольку каждая фиксация является дискретной и неатомной, представление отлично подходит для этого рабочего процесса.

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

Таким образом, вы должны приучить себя не использовать его, кроме как по исключительным причинам. Например, может быть, у вас есть две ветви A & B. кто-то совершил изменение в B, и вам нужна только небольшая его часть, чтобы вы могли используйте Team Sync, чтобы показать различия и применять только те, которые вам нужны. Или, может быть, вы просто хотите скомкать все изменения в ветке B и назвать их одним коммитом в A. тогда вы можете использовать Team Sync вместо того, чтобы возиться с ребазом, когда вы все равно собираетесь бросить B или его удаленную ветку.

Насколько я понимаю, перспектива" git repository "предназначена для фиксации файлов из рабочего каталога в локальный репозиторий Git, а перспектива" Team synchronizing " - для синхронизации вашего локального репозитория с удаленным.

Поначалу меня это тоже сбивало с толку, потому что при использовании SVN перспектива "командной синхронизации" предназначалась для фиксации/обновления файлов. Пока я не заметил, что в перспективе командной синхронизации EGit вместо отображения кнопок фиксации / обновления он имеет кнопки pull/push, которые предназначены для синхронизации двух репозиториев Git.

Для различных опций, которые появляются в контекстном меню "команда", они соответствуют куче операций Git. Я бы предложил немного почитать о принципе работы Git, прежде чем использовать EGit. http://git-scm.com/doc было бы хорошим началом.