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