繁体   English   中英

为什么git pull恢复我从工作目录中删除的文件?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM