Может ли кто-нибудь помочь мне заполнить недостающие фрагменты сценария, который я пытаюсь написать? Я только что понял, что у меня есть публичный репозиторий, который содержит ссылки на коммиты в подмодуле, который я никогда не выдвигал к источнику (коммиты были реорганизованы перед нажатием). Я не знаю, сколько раз это происходило, но я хотел бы выяснить и создать временные ветки, чтобы подтолкнуть их к источнику.
Итак, вернемся к сценарию. Я знаю, что могу получить список коммитов с изменениями в моем подмодуле, которые я могу отфильтровать с помощью grep
и использовать cut
, чтобы получить фактические теги SHA1 из my_submodule
:
git log -u origin/master -- my_submodule \
| grep "^\+Subproject" \
| cut -d" " -f 3
На тот момент у меня было 20 тегов, и я просто использовал текстовый редактор, чтобы создать скрипт для ручной маркировки каждого тегом «tag_00xx». Затем я вручную просмотрел репозиторий в Git Extensions и удалил все теги для коммитов, которые превратили его в origin / master, оставив один тег, который никогда не выдвигался.
Что я должен был сделать, чтобы создавать теги только для коммитов, которые не были в origin / master? Я знаю, что я могу сделать:
git branch -r --contains <commit_sha1>
Но это не устанавливает код выхода, который я могу использовать для выборочного создания новых тегов. Как я мог завершить автоматизацию моей задачи?