git rebase --interactive |重命名路径失败
git rebase --interactive | fails renamed path case
我尝试对一些提交进行交互式变基。
我的 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,但是 A-D 中的任何内容都无法删除、压缩、编辑。
错误:
error: The following untracked working tree files would be overwritten by checkout:
*** list of files contain the lowercase pathes ***
error: could not detach HEAD
忽略大小写配置值
$git config --global core.ignorecase
false
从D提交(有多个文件)
rename from php/software/utils/GlobalManager.php
rename to php/software/Utils/GlobalManager.php
similarity index 100%
我做错了什么,我该如何相处。
一个愚蠢的尝试:在当前分支的顶端添加一个额外的提交,在这里您将有问题的路径重命名为不会冲突的路径:
# 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
我也遇到过这种问题,我所做的只是还原 rebase git 还原 并再次执行以下步骤:-
git rebase -i Head~3 // no of commit we want to rename
then change the Pick to reword
pick f7f3f6d Change my name a bit
pick 310154e Update README formatting and add blame
pick a5f4a0d Add cat-file
像这里一样,我想重命名所有 3 个 commis,所以我将 pick 前缀更改为 reword
reword f7f3f6d Change my name a bit
reword 310154e Update README formatting and add blame
reword a5f4a0d Add cat-file
然后保存继续:wq!.
然后所有提交都将变基,系统会提示您编辑提交消息名称,在那里您可以更改 commit.if 的名称,只要添加和 运行 就有任何冲突git commit --ammend.
因此这些提交消息重命名 window 将提示您等于您要更改的提交名称的数量。这就是您可以更改提交名称的方法。
希望对您有所帮助。
我不确定这是否是正确的解决方案,但它对我有用:
$ git rebase -i HEAD~2
...
error: could not detach HEAD
我也这样做了:
$ git reset --soft HEAD~
$ git commit --amend
成功了,2 次提交被压缩为 1 次
我尝试对一些提交进行交互式变基。 我的 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,但是 A-D 中的任何内容都无法删除、压缩、编辑。
错误:
error: The following untracked working tree files would be overwritten by checkout:
*** list of files contain the lowercase pathes ***
error: could not detach HEAD
忽略大小写配置值
$git config --global core.ignorecase
false
从D提交(有多个文件)
rename from php/software/utils/GlobalManager.php
rename to php/software/Utils/GlobalManager.php
similarity index 100%
我做错了什么,我该如何相处。
一个愚蠢的尝试:在当前分支的顶端添加一个额外的提交,在这里您将有问题的路径重命名为不会冲突的路径:
# 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
我也遇到过这种问题,我所做的只是还原 rebase git 还原 并再次执行以下步骤:-
git rebase -i Head~3 // no of commit we want to rename
then change the Pick to reword
pick f7f3f6d Change my name a bit
pick 310154e Update README formatting and add blame
pick a5f4a0d Add cat-file
像这里一样,我想重命名所有 3 个 commis,所以我将 pick 前缀更改为 reword
reword f7f3f6d Change my name a bit
reword 310154e Update README formatting and add blame
reword a5f4a0d Add cat-file
然后保存继续:wq!.
然后所有提交都将变基,系统会提示您编辑提交消息名称,在那里您可以更改 commit.if 的名称,只要添加和 运行 就有任何冲突git commit --ammend.
因此这些提交消息重命名 window 将提示您等于您要更改的提交名称的数量。这就是您可以更改提交名称的方法。
希望对您有所帮助。
我不确定这是否是正确的解决方案,但它对我有用:
$ git rebase -i HEAD~2
...
error: could not detach HEAD
我也这样做了:
$ git reset --soft HEAD~
$ git commit --amend
成功了,2 次提交被压缩为 1 次