我在過去幾天開始學習git,我有一個基本問題。從github提取新版本時,如何從Git存儲庫中刪除本地更改?
想象一下這樣的情況:
您創建一個空文件夾,並在那裏創建foo.txt的文件。
爲了將數據推入遠程存儲庫(例如github上),則進行以下命令:
git init
- >以initalize資源庫中的文件夾中git add .
- >在爲了添加到索引中的所有文件夾中,在這種情況下foo.txt的git commit -m "First commit"
- >我們做的第一個承諾git remote add origin [email protected]:username/gitrepository.git
- >我們加入GitHub的倉庫git push origin master
- >我們將更改發送到遠程倉庫現在你只有foo.txt的文件GitHub的倉庫。
所以,現在你是在另一臺機器,並希望使用存儲庫中,所以您創建一個空文件夾,並從遠程倉庫拉數據。
然後創建一個名爲bar.txt的文件,刪除foo.txt,將文件(bar.txt)添加到索引,進行提交併將更改推送到遠程存儲庫。現在在倉庫中我們只有跳回到bar.txt文件
但現在的第一臺機器,我們仍然有foo.txt的文件,如果我們做一個拉從遠程倉庫,我們有富.txt和bar.txt。
但是,這不是我想要做什麼,我想拉從庫中的所有文件,並只與那些文件。所以在這個例子中,如果我現在只在倉庫中有bar.txt,那麼當我做一個pull時,我不想在我的項目文件夾中有任何其他文件。
你是如何管理的?
我想我解釋不清自己。試想一下,你在一個倉庫只有酒吧.tx t文件,並在家裏你有你的工作目錄與foo.txt。如果你從github進行pull操作,你的工作目錄中會同時包含bar.txt和foo.txt。但我不想這樣做,我希望每次進行pull操作時都要清理github存儲庫,這意味着如果我在github中只有bar.txt,當我進行pull操作時,我只想在我的bar.txt文件中工作文件夾和沒有更多的文件。 – rfc1484 2011-04-27 21:28:09
拉是一個「獲取+合併」。如果我明白,您不希望與您的本地更改合併。 這是一種方法,但我必須警告您:您的本地更改甚至已提交,將會丟失。 FIRST:「git fetch origin」(而不是拉)。然後:「git reset --hard origin/master」。 – 2011-04-28 15:20:35
這正是我需要的,謝謝! – rfc1484 2011-04-29 13:51:07