git rebase --interactive | не удается переименованный путь - PullRequest
0 голосов
/ 14 июля 2020

Я пытаюсь интерактивно перебазировать некоторые коммиты. Мой git -log выглядит примерно так

A - Files added  
B - Some commit  
C - Some commit  
D - Renamed path from A (dir/dir/dir => Dir/Dir/Dir)  
E - Some commit  
F - Some commit  

Я могу перебазировать E, F без проблем, но что-либо из AD удалить невозможно, squa sh, отредактируйте. :

error: The following untracked working tree files would be overwritten by checkout:  
*** list of files contain the lowercase pathes ***
error: could not detach HEAD

Игнорировать значение конфигурации case

$git config --global core.ignorecase
false

Фиксация из D (есть несколько файлов)

rename from php/software/utils/GlobalManager.php
rename to php/software/Utils/GlobalManager.php
similarity index 100%

Что я делаю не так, как я могу ладить с этим.

Ответы [ 2 ]

1 голос
/ 14 июля 2020

Глупая штука: добавьте дополнительную фиксацию в конце вашей текущей ветки, где вы переименуете проблемные c пути в пути, которые не будут конфликтовать:

# from your current HEAD :
git mv php/software/Utils php/software/Utils-wip
# rename other folders if necessary
git commit

После этого запустите ваша интерактивная перебазировка:

git rebase -i HEAD~41

и посмотрите, работает ли это.

Независимо от проблемы, вы можете отменить дополнительную фиксацию позже:

git reset --hard HEAD~
# that or drop the last commit from your `rebase -i` list
0 голосов
/ 14 июля 2020

С этой проблемой я тоже столкнулся: я просто отменил перебазирование git откат и снова выполните следующие шаги: -

git перебазирование - i Head ~ 3 // нет фиксации, которую мы хотим переименовать

, затем измените Pick на reword

pick f7f3f6d Change my name a bit
pick 310154e Update README formatting and add blame
pick a5f4a0d Add cat-file

как здесь, я хочу переименовать это все 3 коммита, поэтому я изменяю префикс выбора на reword

reword f7f3f6d Change my name a bit
reword 310154e Update README formatting and add blame
reword a5f4a0d Add cat-file

, а затем сохраняю continue: wq!.

затем один за другим все коммиты будут перемещены, вам будет предложено изменить имя сообщения фиксации, и там вы можете изменить имя фиксации. если есть какой-либо конфликт, просто добавьте и запустите git commit --ammend .

, чтобы это окно переименования сообщения фиксации подскажет, равно количеству имени фиксации, которое вы хотите изменить. вот как вы можете изменить имя коммитов.

Надеюсь, это поможет.

...