Eug*_*tos 5 git atlassian-sourcetree
我新克隆了一个私有存储库,注意到它已经有一个处于状态的暂存文件deleted:
发行git status给了我这个:
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
deleted: rootfolder/site/templates/article.php
Run Code Online (Sandbox Code Playgroud)
我想让这个工作目录变得干净,当我取消暂存、取消跟踪甚至删除时会出现问题,给我如下错误:
git -c diff.mnemonicprefix=false -c core.quotepath=false reset -q HEAD -- "rootfolder/site/templates/article.php "
错误:无效路径“rootfolder/site/templates/article.php”致命:make_cache_entry 路径“rootfolder/site/templates/article.php”失败
关于如何解决此问题的任何建议,提前致谢。
小智 1
对我来说,这是 Windows/Linux 的事情。我的 travis 版本(在 Linux 虚拟机上)在我的代码中运行了一些测试,在C:/SomeFolder/someTestResult.file. 然后它继续提交这些更改并推送到C:/文件夹中的 github。
当我尝试git clone在我的 Windows 机器上时,麻烦来了:
$ git clone git@github.com:awesome/somegitrepo.git
Cloning into 'somegitrepo'...
remote: Enumerating objects: 14, done.
remote: Counting objects: 100% (14/14), done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 940 (delta 5), reused 13 (delta 5), pack-reused 926
Receiving objects: 100% (940/940), 500.23 KiB | 364.00 KiB/s, done.
Resolving deltas: 100% (373/373), done.
error: Invalid path 'C:/SomeFolder/someTestResult.file'
Run Code Online (Sandbox Code Playgroud)
显然,由于该文件夹而出现了问题C:/。Windows 上的 GIT 认为C:/不是本地目录,而是根目录,因此someTestResult.fileWindows git 存储库中不存在 Linux 本地目录。我猜想它会假设它已被删除,甚至在我进行任何更改之前就已经进行了删除。
我的解决方案是打开 Linux 终端 ( WSL ) 并从存储库和推送中删除文件,以清理远程存储库。
基本上(在 WSL 中):
$ git clone git@github.com:awesome/somegitrepo.git
$ rm -rf C:/
$ git add .
$ git commit -m 'Removed residue test files'
$ git push
Run Code Online (Sandbox Code Playgroud)
我还更改了我的测试,以不生成奇怪的目录,并将生成的测试文件放在无论如何.gitignore。
| 归档时间: |
|
| 查看次数: |
2022 次 |
| 最近记录: |