2011-09-05 43 views
5

我想拉一個分支(主分支)到當前的存儲庫,並替換現有的文件,而不僅僅是合併文件,命令git pull不適合我的需要,如何要做到這一點?拉和替換現有的文件

回答

6

你爲什麼認爲這不合適?

git pull會將您的分支更新到遠程存儲庫的相同狀態,因此如果您擁有的文件位於遠程的新版本上,它將被替換。

編輯

如果拉式後,合併與你的本地修改完成後,就可以恢復到遠程倉庫的狀態改爲:

git reset origin/head -- <file-path> 
+1

正如你所說,但我發現我的本地文件與來自遠程存儲庫的新文件合併,而不是被替換。 – coolesting

+0

@coolesting:我已經更新了我的答案。 – CharlesB

0

所以,你已經做了本地提交影響這個文件,並希望放棄你的提交,只是採取遠程狀態沒有合併,是嗎?

假設沒有其他人看到您的本地提交(即您沒有push和沒有人從您的回購編輯),您可以將本地HEAD送回提交之前,然後執行提取。

注意:如果您不確定,請先運行git fetch,然後git status會告訴您拉是快進還是合併操作。快進意味着您的本地變化不在圖片中。

+0

不,我只是希望我的本地文件與開發狀態下的遠程文件相同。更新本地文件與遠程存儲庫,但有時,通常,我們的文件是本地和遠程之間的區別,一般來說,我們將合併這兩個文件,但現在我想完全用遠程替換本地文件,而不是合併。 – coolesting

+0

如果文件的本地和遠程版本之間存在差異,那肯定是因爲你改變了它?也許你可以在你的問題中更清楚地說明文件的狀態,在你的本地'master',遠程'origin/master'和它們的共同祖先中。 – Useless

5

如果你想替換單個文件,你可以使用這個。

git checkout -- filename 

Click here更多細節

-1

這很可能是真實的問題,提問者實際上確切地知道他在說什麼,只是需要機械如何渡回答,不是一種哲學的討論。

git的結帳 - (雙破折號),則文件名,雙短劃線和文件名

之間空間的git結帳 - [在回購文件名包括路徑]

例如: git的結帳 - views/userEditor.pug

少哲學,更實際的幫助。嘖。