На самом деле мой вопрос:
Есть ли способ объединить папку в master с корнем в ветке?
Я хочу:
- дерево чтения из ветки в папку в ветке master
- внесите некоторые изменения (добавьте файлы в папку поддерева) в ветке master
- объединить эти изменения (добавленные файлы) из папки поддерева в master в корень ветки
Я пробовал это руководство: https://git-scm.com/book/en/v1/Git-Tools-Subtree-Merging
Но результаты неожиданны:
Я сделал:
$ git init
$ touch fileInMaster
$ git add -A
$ git commit --all -m 'initial commit'
$ git checkout master
$ git remote add rack_remote https://github.com/schacon/rack.git
$ git fetch rack_remote
$ git checkout -b rack_branch rack_remote/master
$ git checkout master
$ git read-tree --prefix=rack/ -u rack_branch
$ git add -A
$ git commit --all -m 'After read-tree to rack folder'
$ echo 0 > rack/fileInRack
$ git add -A
$ git commit --all -m 'Add fileInRack file to rack folder'
$ git merge --squash -s subtree --no-commit rack_branch
Я ожидаю:
- Новый файл 'fileInRack' в ветке master в папке rack
- Новый файл 'fileInRack' в корневом каталоге rack_branch
Но после слияния поддеревьев git заметил меня:
Удаление стойки/файлаInRack
Сквош-фиксация – без обновления HEAD
Автоматическое слияние прошло успешно; остановлен перед фиксацией в соответствии с запросом
Но мне нужно добавить, а не удалить.
Итак, что я делаю неправильно?
Есть ли другой способ объединить папку в master с корнем в ветке?