bod*_*ser 3 git macos filenames github hfs+
我已经更改了我的git存储库中某些目录的大小写.然后我推了他们,注意到没有更新的情况.
然后我发现了这个问题: git mv并且只改变了目录的大小写
我按照建议使用:
git add -A
git commit --amend -m 'updated cases'
git push origin
Run Code Online (Sandbox Code Playgroud)
但git服务器返回成功而不是成功:
To git@github.com:kyogron/example.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:kyogron/example.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again. See the
'Note about fast-forwards' section of 'git push --help' for details.
Run Code Online (Sandbox Code Playgroud)
我现在可以做些什么来更新案例而不会在我的git仓库中破坏更多?
问候,
博多
PS:为了避免将来出现这个问题,您可以使用:
git config core.ignorecase false
Run Code Online (Sandbox Code Playgroud)
你需要:
git push --force
Run Code Online (Sandbox Code Playgroud)
因为你在使用git mv后用你的--amend重写了最后一个SHA1 .
它不会破坏您的回购,除非您有其他协作者已经从您之前的提交中撤出,如" 我如何将修改后的提交推送到远程git仓库? "中所述.
(在这种情况下,您需要其他选项来发布您的固定提交)
在OsX上,这个答案的确表明了(避免这个问题):
git config --unset-all core.ignorecase
git config --system core.ignorecase false
Run Code Online (Sandbox Code Playgroud)
该OP kyogron 报告已经找到了有效的解决方案:
- 创建一个新分支并签出此新分支.
- 然后删除
.DS_Store损坏目录的目录中的文件并将其重命名为新名称.- 然后删除存储库中的错误目录(您可以查看它们
git ls-files)并提交此更改.- 再次删除,
.DS_Store然后将目录重命名为您想要的小写名称git mv
| 归档时间: |
|
| 查看次数: |
2235 次 |
| 最近记录: |