在处理mac时,我的IDE生成了一个包含:
(冒号)字符的目录,该字符被推送到git存储库。当我以后切换到我的电脑上工作时,我发现我无法拉出目录,收到fatal: cannot create directory at... invalid argument
错误。
如何删除或重命名无法使用的目录?
我正在使用GitHub.com,因此使用网站界面的解决方案也是可以接受的。
答案 0 :(得分:3)
您需要记住git pull
实际上是一个两步过程。首先,它使用fetch
来检索远程文件。然后,它会尝试执行fast-forward
merge
直接在您的工作之上应用更改。
所以在遥控器上使用fetch
。这将确保您在git仓库中设置了远程更改集。我想说从git repo运行以下命令:
ls | xargs -I'{}' git checkout -- '{}'
但你说你在Windows机器上,所以你可能只需要循环并手动完成。此外,这假设您的仓库的根目录中没有创建新文件。
现在,如果您确实想要还原目录的创建,请执行以下操作(这假设远程为origin
,分支为master
)。
git update-ref refs/heads/master $(git rev-parse origin/master)
git add --all .
# amend the commit to remove the folder from history
# only do this if you can rebase the remote w/o repercussion
git commit --amend
# otherwise just add a new commit on top of the old
git commit
现在查看日志以查看一切是否正常,如果确实如此,则向上推到远程(如果您使用--amend
则必须强制推送。)