2010-06-06 51 views
10

我維護存儲庫一個git的部分拉動

另一位貢獻者已經將A克隆到另一個存儲庫B

後來,其他貢獻者添加的文件˚F,這是無關緊要的對我來說,到

現在我想在合併更改回一個,但沒有提交˚F。如何做?

+0

也許這個線程可以幫助你:http://www.mail-archive.com/[email protected]/msg00653.html HTH – 2010-06-06 07:16:29

回答

7

從那裏取出頭部和挑選櫻桃。

git remote add jessica git://jessica.com/repo.git 
git fetch jessica master 
git cherry-pick 235a5 
... 
1

簡短的回答是,你不能用git「部分拉」。

然而,可以拉從的變化,然後使用git-變基(1)或git的過濾器分支(1)來修改提交(S)含有˚F到前A。請記住,這將改變(相對於)提交()你修改,所以將來合併的哈希試圖在會比平時少智能。

看看the Pro Git chapter on Rewriting History

2

你可以這樣做:

git checkout <remote_branch> <paths> 

其中<paths>是你真正想要的文件。這是最簡單的,如果你想要的文件在不同的目錄中,你可以使用通配符。

或者,嘗試:

git pull --squash 

這可能有點手冊,因爲你就必須去提交之前刪除你不想要的文件,但它也做到這一點的唯一方法如果你不想要的文件已經被添加爲相同的提交文件,那麼想要的文件。

的(相當大)的缺點是你失去了遠程分支的提交歷史。