У меня есть 2 репозитория, я хочу смержить их вместе но с сохранением истории обоих. Тот репозиторий, который я собираюсь вмержить должен находиться в определенном месте.
Оба репозитория клонированы, второй (вмерживаемый) без remote. Первый находится тут `./main_repo`
,
второй находится `./second-repo`
После операции второй вместе с историей должен появиться тут
`./main-repo/src/main/resources/new-place`
.
Но важно понимать, что я хочу чтобы вся хистори была переписана на новом
месте. То есть, чтобы в результирующем репозитории кликая на `Show history for selection`
в папке `./main-repo/src/main/resources/new-place`
я видел всю историю второго репозитория.
Это сообщение было промптом в GPT с некоторыми итерациями дополнения, чтобы устранить галлюцинации. А дальше скрипт на память.
cd ./second-repo git filter-branch -f --index-filter ' git ls-files -s | sed "s#\t#&src/main/resources/new-place/#" | GIT_INDEX_FILE=$GIT_INDEX_FILE.new git update-index --index-info && mv "$GIT_INDEX_FILE.new" "$GIT_INDEX_FILE" ' HEAD cd ../main-repo git remote add second-repo ../second-repo git fetch second-repo git merge second-repo/master --allow-unrelated-histories git remote remove second-repo
Профит
Комментариев нет:
Отправить комментарий