Подтвердить что ты не робот

Лучшая практика работы с git и github?

Я использую git и github с моей небольшой командой разработчиков для наших проектов. Я не могу не думать, что мы делаем все правильно. Мне интересно узнать, как другие используют этот рабочий процесс в своих проектах.

Как мы его используем: Перед каждым изменением мы вступаем в слияние, возвращаемся обратно в мастера, выполняем локально и нажимаем на наш репозиторий github. Затем мы получаем ssh в нашу тестовую среду и вытягиваем ведущую ветвь github repo. Мы еще не совсем поняли rebase, fetch или tagging.

Как я хотел бы использовать его: Я хотел бы иметь возможность ssh на разные серверы и вытаскивать определенную тегированную версию, такую ​​как "фаза 1" на сервер. Возможно ли это, или мне нужны два разных репозитория github?

Предполагаете ли вы, что git pull определенная ветка на веб-серверах или создать новый псевдоним git push для?

Можете ли вы управлять кандидатами на выпуск или средой (тестирование, разработка, производство) в одном хранилище git? или вам нужно несколько?

Если вытащить это решение, вы можете вытащить конкретный tag?

4b9b3361

Ответ 1

В принципе, вы можете очень хорошо работать с одним "центральным" хранилищем GitHub.

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

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

Ответ 2

Прочитайте Pro Git book. Вы можете читать Git man-страницы в течение года и все еще не получать его: попытка узнать Git путем чтения man-страниц - это как пытаться выучить новый язык, читая словарь, это можно сделать. Книга научит вас нескольким рабочим процессам, которые вы можете иметь с помощью git, и какие команды Git использовать и в каком контексте их использовать.

Ответ 3

В GitHub я использую одну учетную запись для своей компании, где живет "благословенный" код; Затем я поддерживаю личную развилку, где я работаю над вещами, которые еще не совсем стабильны. На моей локальной машине я обрабатываю оба в одном репо, так что мастер - это благословенный код (и нажимает на учетную запись компании), тогда как все остальные ветки для моей вилки. Здесь часть моего .git/config:

[remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*
        url = [email protected]:xiongchiamiov/fourU.git
[branch "hacking"]
        remote = origin
        merge = refs/heads/hacking
[branch "editor"]
        remote = origin
        merge = refs/heads/editor
[branch "problem-utils"]
        remote = origin
        merge = refs/heads/problem-utils
[branch "tests"]
        remote = origin
        merge = refs/heads/tests

[remote "trunk"]
        fetch = +refs/heads/*:refs/remotes/trunk/*
        url = [email protected]:xyztextbooks/fourU.git
[branch "master"]
        remote = trunk
        merge = refs/heads/master

Так как у меня есть права на репо для компании, я могу просто слить (или вишневый) совершить переход из одной ветки в другую и подтолкнуть ее к соответствующему местоположению. Теперь отдельные репозиции, конечно, не нужны, но поскольку это проект с открытым исходным кодом, мне нравится сохранять "официальное" репо без случайных ветвей, созданных моими касательными. Когда он достигнет точки, в которой он получит управление версиями, будет ветвь 0.x с тегами для каждой версии (0.1, 0.1.1, 0.2 и т.д.), Что особенно выгодно, потому что github автоматически создает файлы из архивов файлов в каждом теге, прекрасно подходит для вытаскивания определенной версии на машину, которая не нуждается в полной истории.

Вы должны прочитать блог github; у них были хорошие сообщения, описывающие их рабочий процесс развертывания, который, конечно же, вовлекает git.