2014-12-02 111 views
-2

我注意到,SVN恢復不完全的行爲方式GIT結帳同...:混帳結帳:得到同樣的行爲SVN恢復

SVN情況: 如果我有一個SVN遠程倉庫我在計算機上籤出並在本地對文件進行修改。當我這樣做時,有人在服務器上的同一文件上提交新的更改。

現在我想恢復我對本地存儲庫的更改。我做

svn revert [file] 

這使我的文件處於與我在計算機上檢出遠程存儲庫時所用的狀態完全相同的狀態。

GIT案例: 現在有了GIT。我克隆遠程倉庫,做一個文件中的一些變化,有人推了一些提交影響是相同的文件,我想要做的

git checkout -- file 

這是要給我的有人修改了文件的版本前面提到的,而不是我在此用戶故事開始時克隆的文件。現在

,我想我可以這樣做:

git checkout [commit number of the remote version I cloned] -- file 

但我覺得「乏味/傷腦筋」,知道我只是想我的文件恢復到我的倉庫的本地版本。

所以我的問題是: 有沒有一種方法來專門簽出一個文件到我在本地存儲庫上的版本,當我最後一次拉動遠程存儲庫時?是這樣的:

git checkout local -- file 

? 預先感謝您的寶貴意見&答案=)

+3

在寫問題之前,您是否嘗試過使用'git checkout - file'?因爲它會檢出適當版本的文件,除非你之前做過'git pull',而這種情況你沒有,因爲你需要在'file'中解決衝突。 – Paul 2014-12-02 12:05:17

回答

0

如果我理解你的要求正確,你需要記住的是,git的配置(通常情況下)爲「主」分支軌道了什麼遠程/上游主機。

您可能想要做的是在克隆存儲庫後創建本地分支:git checkout -b my_branch - 並在此處完成您的工作,因此它不受上游更改的影響,但這些更改仍會被拉入您的本地master分支。

然後,您可以在您方便的時候將您的更改git rebase更改到當前的主人。