РЕДАКТИРОВАТЬ: Итак, это 2016, шесть лет спустя, когда я написал оригинальный ответ ниже. Я интенсивно использую git и mercurial уже несколько лет, и я тоже несколько лет занимаюсь разработкой под mac. Я стал очень хорошо знаком с использованием git в командной строке, но для повседневной работы я использую SourceTree от Atlassian. Это не реклама, просто примечание, чтобы обновить этот ответ. SourceTree - это двойная абстракция: тот же интерфейс для git / hg и тот же интерфейс для Windows / Mac. Когда вам приходится часто менять платформы и проекты, это становится очень привлекательным.
Написав руководство по настройке клиента и сервера для Git в Windows , я довольно хорошо представляю, чего можно ожидать. Кроме того, мой основной репозиторий (папка .git
) имеет размер ~ 260 МБ, так что это действительно не тривиальный тест производительности для повседневной работы Git в Windows.
Мое общее впечатление таково, что Git на windows работает очень быстро в подавляющем большинстве ситуаций, с которыми можно столкнуться, за одним действительно огромным исключением: git gui blame -C -C
. По умолчанию git не будет обвинять файлы за пределами переименования файлов, и для этого должны быть переданы дополнительные аргументы -C -C
, но тогда все может действительно замедлиться. На современном оборудовании для создания полной аннотации одного из наших больших исходных файлов размером ~ 20 клок требуется 17 минут. Эта задержка действительно может нарушить вашу концентрацию.
Относительно cygwin :
Я пробовал это только один раз, и не для чего-то существенного. Я действительно хотел родное решение. По общему мнению, git на cygwin работает достаточно хорошо.
Фрэнк Ли проделал огромную работу, принеся теперь знакомый пользовательский интерфейс в мир Git. TortoiseGit запустился очень быстро, потому что большая часть пользовательского интерфейса была доступна от TortoiseSVN (и других инструментов, таких как TortoiseMerge), и я много работал с этим интерфейсом. В общем, это позволяет очень быстро освоиться с Git, если вы знакомы с TortoiseSVN. Разработчик приложил огромные усилия, чтобы использовать термины из мира TortoiseSVN и сопоставить их с командами git. Например, revert действительно выполняет git checkout <file>
под капотом.
В целом, работа с Git была довольно простой, и я должен признать, что изучил Git, используя интерфейс TortoiseGit: и нужно признать, что это было помехой для моего образования. TortoiseSVN-подобный просмотрщик журналов на самом деле не работает для распределенного рабочего процесса (он работает достаточно хорошо, если вы используете Git, как если бы это был SVN), и вы узнаете об этом позже, потому что проблемы только приходят, когда есть много-много веток разработки (gitk
инструмент намного лучше справляется с этим дисплеем). И еще одна проблема заключается в том, что даже после использования TortoiseGit в течение многих месяцев я все еще не знал даже самых простых команд git. В TortoiseGit нет ничего плохого, и ошибки исправляются очень быстро, когда они появляются; кажется, что основной проблемой является проблема дизайна (возможно, более одного) в пользовательском интерфейсе, которую разработчики gitk
и git gui
разработали из-за более длинной истории разработки или более глубоких знаний использования идиоматических мерзавцев, или что-то в этом роде.
Относительно использования командной строки:
Команда разработчиков MSYS git - это те, кого действительно следует поблагодарить за то, что они потрудились выполнить всю работу, которую они сделали, и без их поддержки, вероятно, ветвь mingw git никогда бы не была объединена с магистрали.
Теперь я начал использовать msysgit, как и в оболочке Git Bash , в качестве моего единственного интерфейса git в течение нескольких недель. У меня сложилось впечатление, что, хотя первоначальное обучение кажется более сложным, как только эти знания были получены, все остальное становится легче. Эта ссылка , на мой взгляд, одна из действительно лучших ссылок для изучения git в командной строке.
Выступая от имени пользователя Git в Windows и опираясь на расширенный опыт использования интерфейса TortoiseGit для git, это краткое изложение моего рабочего процесса, которое охватывает> 95% того, что необходимо (все в Git Bash, не командная оболочка Windows (cmd)):
Проверка на наличие модификаций
git status
Переключатель ответвления
git checkout some-feature-branch
Fetch
Git fetch
Показать журнал (&
отсоединяет процесс gitk
от оболочки, чтобы оболочка не дожидалась закрытия gitk
, прежде чем допустить большее количество команд)
Гитк &
Фиксация : либо
Нажмите для перехода: мастер
git push origin master
Слияние (например, после извлечения)
git merge origin / master
Мне еще не приходилось решать конфликты, но я это выясню, когда придет время (комментарии приветствуются:).
РЕДАКТИРОВАТЬ: Для разрешения конфликтов, kdiff3 это путь. Установка проста, и все от простых различий до трехстороннего слияния работает надежно и быстро.
Выводы
Git в Windows является полнофункциональным и работает так, как объявлено, и не ограничен в Windows .
Производительность, как правило, очень хорошая, но серьезные обвинения могут быть медленными.
Интерфейс TortoiseGit является соблазнительным, но в конечном итоге неудовлетворительным: вы должны попытаться изучить git в командной строке. Я сделал оба, и этот маршрут более эффективен.