2010-12-15 5 views
6

ВведенияКак использовать расширения Git и Git?

Я использовал SVN раньше, назад, когда я работал в качестве сольного программиста, просто держать выездные записи того, что я делаю, так что я вроде знаю об идеях, как «хранилища» и «совершает» и т. п., хотя и не намного больше. «Ветви», «слияния» и «проверка», к сожалению, являются для меня загадкой.

Я хочу начать использовать Git, потому что у нас есть пара парней, которые работают вдали от офиса, и они жаловались, что иногда они не могут пройти через некоторые другие системы контроля версий, потому что их интеграция с IDE приводит к надуваться и падать, когда они выходят из-под контакта. Идея Git о том, что «каждый рабочий каталог представляет собой хранилище», похоже, что он должен каким-то образом решить это.

В любом случае, я загрузил «Расширения Git», чтобы добавить «Блестящие» в контекстные меню Windows и т. Д., И я обнаружил, что у меня действительно нет понятия о том, как я должен использовать это, чтобы контролировать мои управления версиями. ничего очевидного не найти после поиска Google, я представляю следующий теоретический сценарий переполнения стека в надежде, что кто-то скажет мне, что делать, в маленьких словах:

Сценария

У меня есть три проекта. Один проект, ProjectReuse используется двумя другими проектами (ProjectA и ProjectB). Различные люди в организации должны будут отредактировать код для каждого проекта, используя Visual Studio 2010.

У меня есть три папки на моем рабочем столе с надписью «ProjectReuse», «ProjectA» и «ProjectB». У меня открыто окно Git Extenstions. Корова, одетая в шляпу Санта-Клауса, смотрит на меня.

Вопросы

Что делать сейчас, чтобы создать репозитории таким образом, что несколько людей (в том числе надоедливого не-всегда-на месте, ребята) могут получить доступ к в хранилище, когда они должны , на месте или вне, с или без постоянного подключения к нашим серверам?

Когда первому парню нужно отредактировать файл, что делает ему нужно сделать? Проверять, выписываться? Филиал? Я должен объяснить это другим членам команды, и я немного шатаюсь по этим понятиям. Раньше я использовал контроль версий для своих сольных проектов.

вкрадчиво и отговорки

Первый «как установить это?» вопрос в том, что меня больше всего интересует, но я думаю, что если я попрошу руководство идиота, я мог бы попросить его сделать как можно более полезным для следующего идиота, который наткнулся на этот вопрос. Здесь я не ищу особенно подробные ответы; У меня просто нет четкой картины в моей голове о том, как работает многопользовательская система контроля версий. Как только у меня это получилось, я смогу самостоятельно поставить остальных.

+0

+1 для «У меня открыто окно Git Extenstions. Корова, одетая в шляпу Санта-Клауса, смотрит на меня». lol, вот так так много новых пользователей ощущают много программного обеспечения. – 2011-05-24 09:43:01

ответ

10

Хорошо, давайте сначала поговорим о git прямо. Git распространяется. Повторите это для себя столько раз, сколько необходимо: нет центрального сервера, центрального хранилища или вообще ничего центрального. Полностью в отличие от SVN, вы не все обращаетесь к одному репозиторию (ничего центрального).

Что вы делаете, это создать репозиторий где-нибудь. Затем все остальные клонируют (копируют) его. Теперь у каждого есть своя копия репозитория и он может сделать с ним по своему усмотрению.Названия филиалов даже не должны быть согласованными между хранилищами, хотя многие люди делают это, когда это помогает.

Итак, как вы его настраиваете? Вы запускаете репозиторий, тогда все, кто хочет его, клонируют. В вашем случае я бы рекомендовал, чтобы каждый проект имел свой собственный git-репозиторий, а не собирал все три вместе.

Но но как я должен управлять командой разработчиков, я слышу, что вы говорите? Не бойся. Я сказал, что нет центрального хранилища, но это не мешает вам назначить один из репозиториев репозиторией выпуска, а другой - экспериментальным или каким-либо другим.

Что вам нужно, это рабочий процесс. Как правило, вы создаете упомянутый релиз-репозиторий, а затем говорите: «Все тянут от мастера здесь». Это ваш последний «стабильный» выпуск. Теперь вы говорите всем, чтобы оттуда оттуда оттуда и развить свои новые функции. Они делают это. По мере того, как это делается, вы просите людей объединить свои изменения обратно в свой собственный мастер или где угодно, тогда вы, менеджер выпуска, вытащите из них (вероятно, в ветку разработки, но вы вполне можете это сделать в своем мастерстве выпуска, потому что это тривиально для обратной фиксации). Затем следующий человек обновляет своего хозяина и делает слияние. Они разрешают свои конфликты слияния и т. Д. И т. Д., Пока у вас не будет всех функций, которые вы хотите. Вы выполняете свое тестирование и т. Д., Тогда репозиторий выпуска действительно все это втягивает в своего мастера.

На практике вы можете делать много разных вещей. Например, если у вас много людей, вам понадобится довольно много общения, потому что, если многие люди сделают несовместимые изменения в вашем совместном проекте, будет сделано несколько коммитов. Чтобы этого избежать, пользователи могут извлекать/объединять друг друга или использовать локальный «общий» репозиторий.

Это действительно работает.

+1

Если вы хотите, чтобы начальный рабочий процесс начинался, взгляните на это: http://nvie.com/archives/323. Учтите, что рабочий процесс между распределенными и централизованными SCM отличается друг от друга. Не спешите, если вам нужно. И последнее: по моему опыту TortoiseGit созревает и проще в использовании, чем Git Extensions. – Ither 2010-12-15 17:29:52

3

Как сказано Ninefingers, просто запустите новый репозиторий и позвольте другим клонировать его. Имейте в виду, что если вы хотите публичный (или центральный) репозиторий, создайте общий репозиторий, а не частный репозиторий. Самый простой способ - сначала создать персональный репозиторий, а затем клонировать его к месту (например, сетевому ресурсу), где каждый имеет доступ как общий репозиторий.

Я создал несколько видео-уроков для Git Extensions здесь: http://code.google.com/p/gitextensions/ видеоурок немного старые и не очень хорошо, так как у меня нет микрофона или каких-либо навыков редактирования видео, но оно должно быть достаточно, чтобы вы начал.

Удачи вам!