簡體   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