Моя компания перешла из Subversion на Git около трех месяцев назад. У нас есть несколько недель предварительного уведомления до выключателя. Поскольку я'd никогда не использовал Git (или любой другой DVCS в), я прочитал про ГИТ](http://git-scm.com/book) и затратив немного времени спиннинг мои собственные репозитории и играть вокруг, так что когда мы поменялись, я'd быть в состоянии продолжать работать с минимальной болью. Теперь я'м 'ГИТ парень' по умолчанию.
С несколькими исключениями, большинство из моей команды до сих пор не имеет понятия, как работает Git. Например, они до сих пор думают филиалов как полные копии исходного кода, и даже пойти так далеко, чтобы клонировать РЕПО в несколько папок (по одной на каждую ветку). Они обычно выглядят в Git, как страшный черный ящик.
Учитывая основополагающий характер источников контроля в нашей повседневной работе (не говоря уже об огромном количестве силы git дает нам), Я'м того мнения, что любой Дев, кто не'т достичь определенного уровня владения это ответственность.
Я должен ждать моей команды, чтобы иметь хоть какое-то понимание, как работает Git, внутренне, и как использовать ее за пределы самых элементарных тяга/слияния/пуш операции? Или я просто делаю что-то из ничего?
Профессионализм, естественно, диктуют, что разработчику ознакомиться с их командой's стандарт инструменты, даже если они новые и незнакомые (или даже нежелательных).
Однако, некоторые вещи в вашем посте дать мне паузу.
у нас есть несколько недель предварительного уведомления до выключателя.
Недель? Замена системы управления версиями является крупной сделкой. Там должно было быть месяцев уведомления, ведущие к изменению подобное.
за несколькими исключениями, большинство из моей команды до сих пор не имеет понятия, как работает Git.
Итак, ваша компания перешла на систему управления исходным кодом, что немногие, если кто-либо, понимал в то время?
Если есть какой-то другой контекст, похоже, был плохо продуман (переезд, не было выбора, я'м огромный вентилятор ЖКТ).
Мы'вэ было вводить git, где я работаю и там, естественно, сопротивление. Это было для нового проекта, так что мы теперь поддерживают два хранилища.
Часть проблемы заключается в том, что народ выиграл'т вижу преимуществ перехода на другую СКМ, когда они'вэ прошли через них работает. Это помогло, когда мы сели с нашей командой на пару один час занятия, где мы бы просто показать варианты использования наши проекты и, как Git стало легче. Например, вещи, которые помогли нам:
и т. д. Каждая из них решена проблема, что мы столкнулись с нашей предыдущей СКМ и чтобы люди могли оценить git более.
Другое дело, что вы можете'т ожидать, что люди уходят и читать книги об этом, потому что очень мало кто будет. Может быть, они должны сделать работу, есть другие обязанности, или любое количество причин.
Так, как 'эксперт ГИТ' вы должны сесть и сделать это как можно проще для людей, чтобы использовать его. Они хотят писать код, а не возиться с их системой SCM.
ГИТ'ы CLI-это загадочные и тривиальные проблемы (вы и я) будет блокировать людей от работы. Здесь's то, что произошло в нашей команде (заметь, это достаточно компетентные разработчики):
Мы все еще получаем некоторое сопротивление, но люди определенно вижу преимущества. Очень важно иметь несколько ГИТ людей для руководства и быть готовым помочь. Также я хотел бы избежать обучения классные вещи, как сброс/перебазирования/--изменения/и т. д. потому что большинство людей будут использовать Git как SVN это's лучше, чтобы позволить им открыть его, если они того пожелают.
Опытный и ГИТ-мания
Такой термин как базовый набор знаний может означать разные вещи для разных людей. Много людей, кажется, есть ГИТ-мания (нет ничего плохого). Многие из нас были сожжены очень сильно на наших собственных и других людей'ы разгильдяйство с системой управления версиями.
Почему это важно (так сильно)
Инструменты управления исходным кодом являются критическими, потому что неправильное использование может замедлить не только одного человека, а целой команды. Неправильное использование Git должен быть менее проблематично, чем злоупотребления в SVN, CVS и другие системы. Исторически сложилось так, что неумелое использование системы заблокированных файлов, что особенно проблематично, и компании нанимали дискретных команд построить так, что когда кто-то попал в беду, был специалистом свободно, который сделал почти ничего, кроме управления источником, который пришел бы вылечить рану в хранилище. Это частично объясняет, какие страсти вы находите позади ЖКТ.
Что базовые знания выглядит?
Некоторые конкретные критерии включают:
Без ссылок на документацию:
Можете добавлять файлы, сохранить изменения, нажимаем и обновления.
Возможность просмотра статуса и деятельности редакции.
Может ветвления и слияния быстро и без ошибок.
Можно использовать соответствующим образом оформить.
Создать коммит комментарии, которые отвечают группы'с критериев для представления замечаний.
Изменения различий между рабочей копией и архиве.
С документацией:
Добавить пользователей и учетные данные для местных РЕПО.
инит локальный РЕПО.
Администрирование удаленного РЕПО.
Настроить игнорируемые файлы, создания инфраструктуры открытого ключа пары открытый/закрытый ключ.
Перемещать и удалять файлы.
Использовать пополам, чтобы найти изменения, которые ввели конкретный баг.
Прочную ментальную модель ЖКТ и код управляются имеет решающее значение, чтобы избежать ошибок.
Что бы вы добавили для продвинутого / экспертизы?
Свободное владение имеет важное значение для разработчиков и, возможно, некоторые другие члены вашей команды. Инструменты, такие как Git являются накладные и должны быть усвоены до уровня, когда они могут быть почти автоматическим. Минимизация времени и отвлечение производится с помощью команды git, которые повторяются тысячи раз в год имеет большое значение.
Там всегда будут некоторые члены вашей команды, которые будут опытные пользователи и используют почти все команды практически с каждым вариантом. Моя рекомендация состоит в том, что членам команды необходимо поощрять продолжать учиться в Git (и других инструментов), пока ROI для обучения падает ниже значения, сделать что-то еще на проекте, с основным лимитирующим фактором является поддержание в ногу с назначенной спалить элементы из текущего спринта.
Git-это просто инструмент, чтобы сделать работу, и один из его'ы большой проблемы в том, что многие команды git евангелистов ожидать, что все пользователи Git, чтобы стать под капотом эксперты понимание тонкостей как это работает. Это ГИТ'ы самая большая слабость - чтобы использовать его, вы должны знать, как это работает. Не существует рецептов с Git, вы должны быть экспертом Git или не использовать его. Это'здорово, что Вы читаете про-ГИТ организации и"перейти" в ГИТ гуру ( или два ), чтобы максимизировать отдачу от инвестиций в это, потому что не каждый разработчик хочет стать ГИТ гуру - и это нормально.
Команды должны знать, как использовать Git (на самом деле они только должны знать, как использовать части ЖКТ, что рабочий процесс требует от них польза), а не как Git работает. Это губительно ожидать, что каждый разработчик, чтобы знать каждую деталь, про каждый инструмент. Если вы еще не получили книгу рецептов, которая поддерживает рабочий процесс, у вас не установлен git, вам вывалили все на разработчиков.
Я Дон'т дать обезьянам как Git работает, как долго, как я знаю, как заставить ЖКТ работать для меня.
Да.
Не важно, какой инструмент в "компании" принял решение, ваша команда разработки должна потратить некоторое время на изучение, как правильно использовать инструмент. Ничего не болит, производительность больше, чем группа разработчиков бояться или невежественны инструмента. Если они используют его неправильно или работает против него, будут возникать проблемы и как идти к парню, вам будет поручено убирать беспорядок.
ГИТ-это тяжелый переход для многих, поэтому обязательно садитесь тренировка может быть в порядке. Это должно помочь выработать много вопросов у людей.
Я только использовал Git в личных настройках и не на профессиональном уровне, и в то время как я люблю власть и идея более децентрализованного управления исходным кодом, он имеет серьезные проблемы. Git имеет дырявой абстракцией и он исполняет несколько команд делать простые вещи (например, чтобы внести изменения: добавить ГИТ коммит в git'е, git после толчка). Также в некоторых документах не хватает и/или заблуждение, как и с перебазировать команду описание... "и вперед-порту локальный обязуется обновленный голову вверх и". Я понятия не имею, что это значит, и хотя теперь я знаю, вы можете переместить совершает вокруг и переписать историю с ним (другая неприятность... почему нельзя это сделать???) Я бы никогда не догадался, что из этой команды описание. Я думаю, что-нибудь почитать на эту часть вашей команды, и еще несколько тренировок, предоставленной вами в порядке.
Обучение и понимание являются минимальными требованиями. Кто-то в заряда должны убедиться, что был план о том, как ваша команда будет использовать его. Вы бы'т принять новый язык программирования без руководств. Водитель'ы обучение гораздо эффективнее, когда установленные правила дорожного движения включены.
Нет, я думаю, что это's разумно ожидать следующее:
Если они могут'т сделать #1, то учебная часть вашей выкатными был, вероятно, недостаточно. Если они могут'т сделать #2, то сначала убедитесь, что вы'снова объяснив все достаточно четко, прежде чем слишком расстроен.