#git #azure-devops #yaml #azure-pipelines #repo
Вопрос:
У меня есть конвейер yaml, который проходит от вышестоящего к разветвленному репо, но каждый раз, когда он запускается, он удаляет файлы в разветвленном репо и заменяет его файлами в вышестоящем. Я попытался добавить файл .gitignore, но это не сработало.
- мерзавец принес
- git проверка основной
- слияние git вверх по течению/основное
- git push -f
Комментарии:
1. Git-это не файлы , а скорее коммиты . Ничто не «удаляет файлы», пока вы только добавляете коммиты. Если у новых коммитов нет файлов, то у старых коммитов есть. Убедитесь, что вы не отбрасываете коммиты; это единственный способ потерять вещи.
2. Хорошо..Но как бы вы синхронизировали разветвленное репо с вышестоящим, не удаляя файлы, которые вы добавили вручную в разветвленное репо
3. Синхронизация репозитория заключается в добавлении в него коммитов . Убедитесь, что вы не отбрасываете старые коммиты, когда делаете это, и все готово. Как вы это сделаете, зависит от вас и зависит от желаемых результатов: например, один из способов-взять два репозитория R и S, выяснить, какие коммиты у R есть, а у S их нет, и поместить их в S, а также выяснить, какие коммиты у S есть, а у R их нет, и поместить их в R.
4. С другой стороны, если R не будет принимать новые коммиты от S: выясните, какие коммиты у R есть, а у S их нет, добавьте их в S, и теперь S является надмножеством R. Если вы не контролируете R, а они (кто бы ни контролировал R) упрямы, это может быть лучшее, что вы можете сделать.
5. И помните следующее: проверка фиксации C1 заполняет ваше рабочее дерево файлами из C1. Переключение оттуда на C2 удаляет файлы из C1 и вместо этого заполняет ваше рабочее дерево файлами из C2. Переключение на C3 удаляет файлы C2 и помещает файлы C3. Если в C1 есть только файл f1, переключение обратно на C1 удаляет все файлы C3 и помещает в f1. Вот что значит иметь дело с коммитами , а не с файлами .