2

我的 git 有问题 我的问题如下,当我拉动时:

git pull origin example

直到完美!!,然后我做一个

rm -Rf rootdirectory

然后

git commit -am "Delete files"

然后我再次拉动,因为我需要这些文件

git pull origin example

但它不会再次获得根目录

这是一条消息:

Already up-to-date.

我该如何再次使用 git pull 获取文件?

4

4 回答 4

7

git pull 没有改变任何东西的原因是您没有从远程存储库中提取数据,而是在提取更改。并且 git 没有任何变化!

Git 不是数据存储。这是一个版本控制系统

但是,如果您想检查以前的状态,您可以轻松地做到这一点:

git checkout HEAD~1

这意味着您正在将工作副本重置为最新提交之前的状态。

但是,如果您想完全删除删除文件的提交,您也可以这样做:

git reset --hard HEAD~1
于 2012-07-23T14:14:18.433 回答
3

我是否认为您已经习惯了 Subversion,如果您删除文件,然后执行 a svn update,文件将被重新填充?我也是。

在 git 中,您必须git checkout将文件从 repo 中取出。您也可以使用git reset --hard来更新文件,但这样做会清除工作目录中的任何更改。

于 2012-07-23T14:15:11.020 回答
2

这就是 git 的工作方式。在拉取origin/example并提交您的更改(“删除文件”)之后,您的本地存储库将领先于origin/master该 1 次提交:

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
于 2012-07-23T14:31:07.420 回答
1

转到文件被删除的目录,确保你在你想要的分支上,然后输入“git checkout”。这将带回您在当前分支上删除的文件。

于 2015-10-27T14:43:09.353 回答