Существует три общих случая использования нескольких пультов git, и то, как вы с ними справляетесь, зависит от того, какой случай вам нужен.:
Как уже упоминалось, обработка вещей зависит от того, в каком деле вы находитесь. Простейшая ситуация (и та, в которой, как я думаю, вы находитесь, учитывая описание вашего вопроса ), на самом деле является случаем 2.,где управление просто состоит в том, чтобы убедиться, что вы отправляете обновления в оба репозитория, когда вы отправляете обновления (git требует, чтобы вы явно отправляли на каждый удаленный ). Случай 3 тоже довольно прост: когда вы делаете релиз, вы просто помечаете его и отправляете в оба репозитория, но только в ваш репозиторий разработки, когда вы ничего не выпускаете.
Случай 1, хотя и является наиболее распространенным, является и наиболее сложным, поскольку включает в себя больше, чем просто команды push и pull. Единственная ситуация, когда вторичный удаленный сервер имеет значение, — это когда есть обновление вверх по течению, и в этот момент вам нужно извлечь его и перебазировать (или объединить, в зависимости от вашего локального рабочего процесса ), вашу локальную ветвь поверх этого.
Кроме того, вам может быть интересно прочитать официальную Git Book , она отлично объясняет некоторые вещи. Глава «Распределенный Git», вероятно, является наиболее подходящим разделом для этого вопроса, но я бы настоятельно рекомендовал прочитать ее целиком, поскольку для понимания рабочих процессов требуется хорошее понимание того, как Git управляет исходным кодом.
Подстановка параметров может использоваться для удаления строковых префиксов из JENKINS_URL
. Из справочной страницы ksh:
${name#pattern}, ${name##pattern}
If pattern matches the beginning of the value of parameter name, the matched text is deleted from the result of substitution. A single # results in the shortest match, two #'s results in the longest match.
В качестве примера:
JENKINS_URL="http://abc"
mkdir -p "down/${JENKINS_URL#*://}"
JENKINS_URL="https://def"
echo mkdir -p "down/${JENKINS_URL#*://}"
Приведенный выше сценарий удалит любой префикс протокола. Результат запуска скрипта:
mkdir -p down/abc
mkdir -p down/def