2011-02-02 101 views
0

我的工作提高一個流行的PHP論壇軟件。一個月前,我開始使用Git存儲庫1.0版:Git的合併舊的修改版本和新未修改

git init . 
(copied files here of version 1.0) 
git add . 
git commit 
後,我工作在改進這個軟件爲1個月(人提交)

。現在有新的官方版本可用。版本是1.1。我必須合併論壇的新功能而不刪除我的代碼。我應該使用哪些git命令?

我嘗試做如下:

1) git branch vendor 
2) git checkout vendor 
3) delete old files and put files of version 1.1 
4) git checkout master 
5) git merge vendor 

但是,當我這樣做,我失去了我所有的修改。我哪裏出錯了? 謝謝。

回答

2

理想情況下,您正在使用的軟件應該已經有了一個可公開訪問的某種類型的存儲庫,您應該可以使用git-svn或其他某個導入程序。假設這是由於某種原因不可能的,這是我的建議。

創建一個名爲「供應商」的分支,而是從開始提交您添加1.0版本(貌似這是你的根提交)。無論何時出現新版本,請查看該分支,刪除所有內容,並在發佈中轉儲(就像您所說的那樣)。重要部分:絕不會在此分支上包含任何更改。然後你可以自由地將它合併到你的主分支中。由於新版本可能會進行大量修改,因此您可能會更頻繁地遇到此工作流程中的合併衝突。工作的危險。

你的病史應最終是這樣的:

x [1.0] ------- x [1.1] ------------ x [1.2] (vendor) 
\    \     \ 
    o - o - o - o - o - o - o - o - o - o (master) 

粗體文字,順便說一句,是你出了問題。您可以從主分支開始vendor分支,所以當你提交的1.1版,你的歷史是這樣的:

x [1.0] - o - o - o - o - o (master) - x [1.1] (vendor) 

所以很自然的,當你合併到供應商的高手,你結束了精確V1.1。

+0

感謝,並有可能創造一個所謂的「賣方」分支,在那裏我加了1.0的版本用一個命令從呈交開始? – 2011-02-02 21:21:19

相關問題