[英]Why doesn't git pull restore files I've deleted from my working directory?
我有一个git的问题我的问题如下,当我拉一下:
git pull origin example
直到那里完美!!,然后我做一个
rm -Rf rootdirectory
然后
git commit -am "Delete files"
然后我再次拉,因为我需要这个文件
git pull origin example
但它不再是根目录
这是一条消息:
Already up-to-date.
我怎样才能再次使用git pull获取文件?
git pull没有改变任何东西的原因是你没有从远程存储库中提取数据 ,你正在拉动变化 。 并没有改变git拉!
Git不是数据存储。 这是一个版本控制系统
但是,如果你想签出以前的状态,你可以很容易地做到这一点:
git checkout HEAD~1
这意味着您将工作副本重置为最新提交之前的先前状态。
但是,如果您想完全删除删除文件的提交,您也可以这样做:
git reset --hard HEAD~1
我是否认为你已经习惯了Subversion,如果你删除了文件,然后进行了svn update
,那么这些文件会被重新填充? 我也是。
在git中,你必须进行git checkout
才能将文件从repo中删除。 您也可以使用git reset --hard
来更新文件,但这样做会消除工作目录中的任何更改。
这就是git的工作方式。 在提取origin/example
并提交更改(“删除文件”)后,您的本地仓库将超过该提交的origin/master
:
A---B---C origin/master
\
D master
其中D
是您的Delete files
提交。 另一个git pull
给你Already up-to-date
因为没有新的提交origin/master
可以被拉入你的本地仓库。
要“再次获取文件”,您可以撤消上次提交:
git checkout HEAD~1
或者,您可以重置本地存储库以匹配远程存储库:
git reset --hard origin/master
转到删除文件的目录,确保您在所需的分支上并键入“git checkout”。 这将带回您在当前分支上删除的文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.