无法从 Git 仓库拉取的目录如何删除?

3
当我在Mac上使用IDE时,生成了一个包含冒号(:)字符的目录,并将其推送到git仓库。后来当我在PC上工作时,发现无法拉取该目录,收到一个“fatal: cannot create directory at... invalid argument”错误。 如何删除或重命名无法拉取的目录? 我正在使用GitHub.com,因此使用网站界面的解决方案也可以接受。

在使用 Mac 时,为什么不从 Mac 上将其删除? - valentinas
我的 Mac 正在工作,今晚我需要将更改拉到我的家用电脑上。 - Elliot Hatch
1个回答

3
你需要记住,git pull实际上是一个两步骤的过程。首先使用fetch命令从远程检索文件,然后将尝试进行fast-forwardmerge以应用变更到你的工作目录上。
因此,在远程使用fetch命令。这将确保你在git存储库中获取了远程变更集。我建议从git存储库运行以下命令:
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,则必须进行强制推送)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接