2010-04-23 114 views
1

我正在與一些從未使用過git的人一起工作。不瞭解git的功能,他們創建了兩個版本的項目:開發和生產。這兩個版本都存在於當前環境中。使用git合併兩個文件夾

使事情進一步複雜化,除了舊的開發文件夾外,其他用戶還創建了這些文件夾。所以項目目錄看起來像這樣

/root 
    /.git 
    /proj   (old dev folder with my own code in it) 
    /dev_proj  (new folder which I would like to merge /prod with) 
    /prod_proj  (production code) 

所以我想要做的是合併,我已經在/proj與在/dev_proj工作所做的工作。有沒有辦法用git來做到這一點?

我想過創建一個分支,將所有文件從/proj複製到/dev_proj並將該分支與主分支合併。這會工作嗎?

謝謝,如果我能澄清一些事情讓我知道。

+0

proj和dev_proj將文件夾分隔在同一個git倉庫或單獨的分支中,或單獨的git倉庫? dev_proj中是否存在不在您的項目文件中的更改?如果是這樣,你是否有這樣的代碼之前的方式嗎? – clahey 2010-04-23 01:32:26

+0

proj,dev_proj和prod_proj是git項目的文件夾。這是當前主存儲庫中的結構。另一位程序員在/ dev_proj文件夾中更新了所有的代碼。所以我的更新是在/ proj,而他在/ _proj。 我認爲他做了一次提交將所有更新的文件提交到/ dev_proj,因此這些更改沒有真正的歷史記錄。 – vrish88 2010-04-23 01:37:07

+0

但proj有你的歷史?你知道他從開發他的代碼中選擇了哪些變更嗎? – clahey 2010-04-23 01:42:22

回答

1

我不是一個git專家,但我會建議創建一個新的分支,紮根於他在進行更改之前複製其代碼的更改。

git branch devProjTemp <commit-id> 

(不要忘了git checkout devProjTemp。)然後將所有文件從dev_proj複製到PROJ,並提交。那麼你應該能夠從新分支合併到主,它應該做正確的事情。

如果你想有獨立的開發和生產數據,我也建議爲其中的一個創建一個分支。具體來說,我會創建一個prod分支,並將prod_proj中的更改複製到該分支。

然後,我會刪除master分支和prod分支中的prod_proj和dev_proj。

你的同事不知道分支機構?我會在那裏做一些教學。一旦你創建了分支,它不應該那麼難。

+0

我不是git專家,但這是我發現解決這類問題的唯一方法。 – 2012-08-06 17:55:41