Есть такая ситуация, скажем, у меня есть dev
ветка и такая структура проекта MyProj/Foo/MyFile.java
. Затем я делаю checkout dev -> dev-test-first
, помещаю некоторые файлы и делаю коммит, теперь он выглядит так:
MyProj/Foo/MyFile.java
MyProj/Foo/MyFile2.java
MyProj/Foo/MyFile3.java
Теперь я делаю еще одну проверку из dev -> dev-test-second
и сначала переименую Foo
dir вBoo
затем удалите MyFile.java
, добавьте MyFile4.java
и передайте его.
Результат на dev-test-second
br
MyProj/Boo/MyFile4.java
Наконец я делаю слияние двух из этих ветвей dev-test-first
иdev-test-second
с основной dev
веткой.
Что я ожидаю получить?
Это
MyProj/Boo/MyFile2.java
MyProj/Boo/MyFile3.java
MyProj/Boo/MyFile4.java
Верно? Но на самом деле это то, что я получаю
MyProj/Foo/MyFile2.java
MyProj/Foo/MyFile3.java
MyProj/Boo/MyFile4.java
Вместо переименования git держите два из этих каталогов Boo
и Foo
, несмотря на тот факт, что он был переименован.
Вопрос: почему происходит это неожиданное поведение?