Git 强行拉取在本地已删除/编辑的文件或目录

it 强行拉取在本地已删除/编辑的文件或目录,用 git checkout 恢复单个已删除/编辑的文件或目录。

删除本地文件后,想从远程仓库中重新 Pull 最新版文件,Git提示:
git.exe pull -v –progress “origin”
… …
Already up to date.
Success (6829 ms @ 2019/5/27 12:02:53)

但是,实际上并没有得到删除的文件,怎么办呢?

这时就强行拉取(pull),在删除的文件所在目录下打开命令行窗口,顺序执行下面三条命:
git fetch –all
git reset –hard origin/master
git pull

注意,执行这三条命令后,不但恢复了删除了的文件并且没删除的但已修改的文件也被强行拉取并覆盖,不仅如此,整个版本库的其他目录/文件也受到同等待遇,而不只是当前目录里的文件。

注意,执行这三条命令后,不但恢复了删除了的文件并且没删除的但已修改的文件也被强行拉取并覆盖,不仅如此,整个版本库的其他目录/文件也受到同等待遇,而不只是当前目录里的文件。

那么有没有只恢复指定文件/目录的方法呢?看了一个帖子,用 git checkout 拉取单个文件或单个目录,如下:
git checkout <文件名或目录名>
但实践证明,这条命令只是从本地(注意,是从本地,不是从远程服务器)恢复删除了或编辑过的文件/目录。逻辑上讲,从本地把原文件 checkout 出来就可以,用不着从远程服务器上 pull 下来,所以用 git checkout 恢复单个已删除或编辑了的文件/目录就OK 。

还有帖子说了另一种办法,在服务端执行 git config core.sparsec

文章知识点与官方知识档案匹配,可进一步学习相关知识
Git技能树Git入门版本管理6236 人正在系统学习中

Git 强行拉取在本地已删除/编辑的文件或目录

发表评论

您的电子邮箱地址不会被公开。

滚动到顶部