Как создать подкаталоги без HTTP или HTTPS из строкового параметра

Существует три общих случая использования нескольких пультов git, и то, как вы с ними справляетесь, зависит от того, какой случай вам нужен.:

  1. У вас есть форк какой-то программы с вашими собственными патчами поверх. Это самый распространенный случай, о котором я знаю, и единственный, с которым у меня был личный опыт, и на самом деле это довольно типичная ситуация для разработки. Действительно хорошим примером этого может быть https://github.com/Ferroin/linux, где я поддерживаю небольшое количество локальных патчей поверхhttps://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
  2. У вас есть несколько вышестоящих репозиториев, в которых вы публикуете работу и хотите, чтобы они оставались синхронизированными друг с другом. Я не знаю ни одного проекта, который делает это регулярно, хотя иногда это делается, когда проект переходит между разными хостинг-провайдерами для своих репозиториев.
  3. У вас есть отдельный репозиторий разработки и выпуска. Это очень похоже на случай 1, только наоборот.

Как уже упоминалось, обработка вещей зависит от того, в каком деле вы находитесь. Простейшая ситуация (и та, в которой, как я думаю, вы находитесь, учитывая описание вашего вопроса ), на самом деле является случаем 2.,где управление просто состоит в том, чтобы убедиться, что вы отправляете обновления в оба репозитория, когда вы отправляете обновления (git требует, чтобы вы явно отправляли на каждый удаленный ). Случай 3 тоже довольно прост: когда вы делаете релиз, вы просто помечаете его и отправляете в оба репозитория, но только в ваш репозиторий разработки, когда вы ничего не выпускаете.

Случай 1, хотя и является наиболее распространенным, является и наиболее сложным, поскольку включает в себя больше, чем просто команды push и pull. Единственная ситуация, когда вторичный удаленный сервер имеет значение, — это когда есть обновление вверх по течению, и в этот момент вам нужно извлечь его и перебазировать (или объединить, в зависимости от вашего локального рабочего процесса ), вашу локальную ветвь поверх этого.

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

2
19.01.2020, 22:41
1 ответ

Подстановка параметров может использоваться для удаления строковых префиксов из 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
4
27.01.2020, 21:57

Теги

Похожие вопросы