2012-10-16 34 views
1

我是git的新手,請原諒基本問題。
我有幾個結賬回購:Folder1是在Server1Folder2是在Server2git中的CVS更新等效

Folder2只有「git pull」的變化。
這將獲取從Folder1簽入的所有文件。

我只想更新特定文件類似「CVS更新文件名」

cvs update filename 

我試過「git checkout -- filename」這根本沒有做任何事情。
我按照這些步驟:■

#Commit and push changes in foo.txt from Folder1 on Server1. 
# On Servers 
cd Folder2 
git checkout -- foo.txt 

上面的命令只是沒有做任何更新。

+0

我不明白。如果你在不同的服務器上有兩個相似的回購站,你爲什麼期望推到Server1會導致Server2上的回購庫被更新? – slebetman

+0

我只有一個倉庫在兩個不同的文件夾中籤出。一個在服務器1上,另一個在服務器2上。當我從folder1簽入時,在文件夾2上運行git pull,然後更新所有文件。我只想提取選定的文件。 –

回答

1

如果您已經將repo1提交到repo2,那麼repo2應直接看到更新的文件。
但是爲了以防萬一,你需要:

git fetch repo1 
git checkout repo1/master -- path/to/file 

只要repo2具有遠程命名爲 「repo1」。
如果遠程被命名爲「origin」(默認名稱),然後

git fetch origin 
git checkout origin/master -- path/to/file 

在這兩種情況下,看到在一個特定的文件更新從遠程回購(如repo1),你需要獲取遠程回購先進入repo2

+0

我完全錯誤地形成了我的問題。我已經更新了我的問題。這將詳細說明我在找什麼。謝謝你的回答 –

+0

@MANISHZOPE不應該改變我的答案:你的每個文件夾都是git回購。稱他們爲「Repo1」或「Folder1」。 'git checkout origin/master - path/to/file'仍然可以做你想做的事情。 – VonC