Git Rebase: добавление файлов после изменения структуры каталогов - PullRequest
0 голосов
/ 25 марта 2020

У меня есть следующий сценарий:

У меня есть Repo1, и я создал его копию в Repo2, клонируя Repo1, а затем изменив источник на Repo2. Все идет нормально. Нет в Repo 2 Я хочу создать папку sr c и переместить в нее все файлы, так что мы имеем следующую ситуацию:

Repo1:

- file1
- folder1
  -file2

Repo2:

-src
  - file1
  - folder1
    -file2

Пока все хорошо. Нет, когда я перебрасываю Repo2 на Repo1 , и файл1 изменился, он обнаруживает это и добавляет изменения в правильный файл1 в папке sr c Repo2.

проблема заключается в том, что когда я добавляю файл в Repo1, а затем перебазирую его, он не обнаруживает это и помещает новый файл вне папки sr c.

Любые советы о том, как это можно решить, чтобы сгладить будет ли возможен ребазинг?

Спасибо большое!

1 Ответ

0 голосов
/ 29 марта 2020

Предположим, что первый коммит в Repo2 , которого нет в Repo1 , перемещает файлы в подкаталог:

git switch -c tmp repo-1/master
git rm -r *
mkdir src
git read-tree --prefix=src -u HEAD
move_commit=$(git rev-list repo-1/master..master | tail -1)
git commit --no-edit -c $move_commit
git rebase --onto tmp $move_commit master
git branch -d tmp

Или, если вы не настаиваете на перебазируя, вы можете сделать одно из следующих действий:

  • git merge -s subtree repo-1/master
  • git subtree pull --prefix=src repo-1 master
...