我对git有疑问 当我拉动时,我的问题如下:
git pull origin example
直到完美!!然后我做了
rm -Rf rootdirectory
然后
git commit -am "Delete files"
然后我再次拉,因为我需要这个文件
git pull origin example
但它不会再次出现根目录
这是一条消息:
Already up-to-date.
我怎样才能再次使用git pull获取文件?
答案 0 :(得分:7)
git pull没有改变的原因是你没有从远程存储库中提取数据,而是提取更改。并且git没有任何变化!
Git不是数据存储。它是版本控制系统
但是,如果您想结帐以前的状态,您可以轻松地执行此操作:
git checkout HEAD~1
这意味着您将工作副本重置为最新提交之前的先前状态。
但是,如果您想完全删除删除文件的提交,您也可以这样做:
git reset --hard HEAD~1
答案 1 :(得分:3)
我是否认为你已经习惯了Subversion,如果你删除了文件,然后做了svn update
,文件会被重新填充?我也是。
在git中,您必须执行git checkout
才能将文件从回购中删除。您还可以使用git reset --hard
更新文件,但这样做会消除工作目录中的任何更改。
答案 2 :(得分:1)
这就是git的工作方式。提取origin/example
并提交更改(“删除文件”)后,您的本地仓库将超过{1}提交的那个:
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
答案 3 :(得分:1)
转到删除文件的目录,确保您在所需的分支上并输入" git checkout。"这将带回您在当前分支上删除的文件。