记录git删除 由于文件大小写重命名导致的同步更新的其中一个文件

背景

我在window系统做开发,前两天重命名工作区一个FullState.tsx为fullState.tsx,可能由于提交反复的问题(commit时没成功被误以为成功了,后续修改直接执行了amend,导致需要reset重新commit),线上的diff中存在FullState.tsx和fullState.tsx两个文件。但是本地找不到大写的那个。

尝试

为了去掉大写文件,尝试:

// 本地删除  失败
1、本地git rm FullState.tsx                 
=== 失败,提示不存在FullState.tsx文件
// git仓库线上删除  成功
2、线上浏览时,删除提交   
=== 成功
// 本地开发分支修改一部分代码后,合并远程分支   失败
3、开发分支:git pull + git rebase origin/功能分支
=== 提示 FullState.tsx 文件不存在
=== 还有一堆几行变色的提示(没见过,已记不清,当时没截图)

又尝试:

// 退出rebase 
4、git rebase --abort
// 将修改内容重新保存起来
5、开发分支: git reset  HEAD~1   // 调出unstaged change
6、开发分支: git stash 
// 直接在功能分支上合并代码
7、本地同名功能分支: git stash pop

记录git删除 由于文件大小写重命名导致的同步更新的其中一个文件_第1张图片

// 既然提交内容多一个不必要的更改,删除改文件
8、git clean -n 查看是否能删除

在这里插入图片描述


// 看到上面可以删除改文件,随即执行删除
9、git clean -f 
// 查看是否还存在
10、 git status   // 删除成功
// 提交代码上限
11、git push
// 提交合并请求, 在diff里能看到FullState.tsx 完全重新被提交,显示为
FullState.tsx +365   // 由0新增365行代码

这意味着本地提交对象已经包含了FullState.tsx,虽然本地文件看不到,只有特殊处理才能去掉。

git config core.ignoreCase  =>  false

可能我还缺乏这方面的知识,但是我做了一个小尝试。

重命名了 fullState.tsx 文件
发现大小写同名文件被一起删除了,和猜想的一样,在那几次反复的提交中,这两个文件被绑定了。
所以最新的那次修改虽然没有显式的修改 FullState.tsx 文件,但是 他被fullState.tsx(小写文件)的内容影响了。
记录git删除 由于文件大小写重命名导致的同步更新的其中一个文件_第2张图片
于是我最终选择了重命名,最终仓库里就只有一个 allStates.tsx 文件。

你可能感兴趣的:(版本管理,git,github)