我正在使用Tortoisegit。
我正在执行拉取,但没有从远程存储库获取文件。
以下是我正在执行的步骤:
1( Dit Git 克隆 已将存储库保存到我的本地磁盘
2(手动删除了一个文件(不使用Tortoise的删除选项(
3(使用Tortosegit进行"拉动",但是我正在获取已删除的文件
带着成功回归。
git.exe pull --progress -v --no-rebase "WB" master
From https://github.com/wb/WBR_01
* branch master -> FETCH_HEAD
= [up to date] master -> WB/master
Already up to date.
Success (2406 ms @ 25/08/2018 21:02:51)
谁能让我知道为什么拉我们没有从远程获取文件?
谢谢
当你拉取时,你的 git 客户端将连接到配置的远程并检索任何新的提交(fetch(,然后尝试将它们应用到你的本地分支(合并(。
在您的情况下,没有新的提交,因此没有什么可更改的。
如果要丢弃本地更改并让工作区反映当前提交,可以使用 clean 或 reset 命令。
Git pull 将远程分支中的更改合并到本地分支中。在您的情况下,远程分支中没有任何新提交。
如果您使用 TortoiseGit 并且想要取回已删除的文件,则需要在父文件夹(或提交或存储库状态对话框(上使用">还原"。右键单击以弹出上下文菜单,然后选择命令 TortoiseGit → 还原.将弹出一个对话框,显示已删除(或更改(并可以还原(或还原(的文件。选择要还原(或还原(的那些,然后单击"确定"。
您必须区分 Git 提交历史记录和本地工作目录中的更改。两者可以共存于同一存储库中,不一定会对另一个产生影响。
您所做的是在不告诉 Git 的情况下删除了一个文件。如果您这样做git status
它将显示:
changes not staged for commit:
deleted: path/to/your/deleted/file
当你做一个git pull
时,Git 将首先获取所有远程提交,然后尝试将它们合并到你的本地分支(通过真正的合并提交,或者通过快进(。从您发布的输出来看,远程设备上没有新的提交,因此不会发生任何事情(您的文件仍然被删除,但您尚未告诉 Git(。
由于问题的要点是如何将文件放回工作目录,因此有两种选择:
使用
git checkout -- path/to/your/deleted/file
git checkout
可用于移动到不同的分支,但也可用于签出文件的特定版本。在您的情况下,HEAD
的版本(当前签出的提交(。使用
git reset --hard HEAD
清除所有本地更改。请注意,此操作无法撤消。