2014-12-10 114 views
1

所以我的問題是這樣的:我有2個不同的存儲庫,我需要做一個不同的,新的 - 包含這兩個文件。然而,存儲庫共享一些文件(例如main.c,我想手動合併)...我試圖合併回購與本教程:http://blog.caplin.com/2013/09/18/merging-two-git-repositories/,但是我只得到一個main.c副本。也許我不明白git是如何工作的(我對它很陌生),但我真的需要git給我兩個文件,然後我可以手動更改並製作一個新的main.c ...我希望我我已經明確了我的問題......我可以製作這些存儲庫的兩個不同的工作副本,複製內容並製作新的回購協議......但是,歷史記錄會丟失,對嗎? http://git-scm.com/book/en/v2/Git-Basics-Working-with-RemotesGit - 如何將多個存儲庫與常用文件合併?

克隆了第一個遠程創建初始組文件的本地 - - http://git-scm.com/docs/git-clone

然後使用git拉[REMOTE2]從獲得的文件

回答

0

使用git add remote兩個遙控器創建一個存儲庫其他存儲庫 - http://git-scm.com/docs/git-pull

然後解決任何代碼衝突。

然後,如果需要,爲新回購添加第三個遠程並將代碼推送到該目錄。

+0

我無法克隆遠程,因爲它說**致命:存儲庫'ps3'不存在**。 ps3是我的第一個遙控器的名稱,您希望我克隆它。我通過'git pull ps3 master'拉過它,並且它工作。然而,當我嘗試'git pull ps4 master'這就是我得到的: '從******* ... *分支主 - > FETCH_HEAD * [新分支]主 - > p4 /主 已經最新。 '。它不是最新的,因爲ps4(我的第二個遙控器)有不同的main.c比我的ps3 ... – JinLisek 2014-12-10 22:33:32

0

您需要選擇一箇中心點。對於project_a,這將是默認的,您的代碼存儲庫位於https://path.toyourproject.com/p/project_a。通過檢查它和它的所有內容移動到一個子目錄開始:

$ git clone https://path.toyourproject.com/p/project_a 
$ cd project_a 
$ mkdir project_a-cli 
$ git mv * project_a-cli 
$ git commit -a -m "Move." 

然後,你就可以開始解決二級庫的合併。例如,https://path.toyourproject.com/p/project.testers

的第一步是在二級倉庫拉進你的中心點

$ git remote add origin-testers https://code.google.com/p/project.testers 
$ git fetch origin-testers 

檢查出來到一個臨時黨支部及其所有內容移動到子目錄中

$ git branch merge-testers origin-testers/master 
$ mkdir project.testers-testers 
$ git mv * project.testers-testers 
$ git commit -a -m "Move." 

合併兩個儲存到一個

$ git checkout master 
$ git merge merge-testers 

清理

$ git branch -d merge-testers 
$ git remote remove origin-testers 

之後手動解決衝突。你可能想爲Git安裝一個可視化差異工具。

+0

在進入project_a目錄並創建一個新文件夾後,當我嘗試執行 'git mv * project_a-cli' 時,我收到一條消息:**致命:無法將目錄移動到自身中,source = project_a-cli,destination = project_a -cli/project_a-CLI **。所以我通過'git mv * .c project_a-cli'移動文件,然後它就工作了。在獲取第二個回購和執行'git mv * project.testers-testers'後發生了同樣的致命錯誤。所以我試着像以前一樣做:'git mv * .c project.testers-testers'。然而,然後我得到另一個錯誤:**致命:不良來源,來源= *。c,目標= project.piask4-piask4/*。c **。 – JinLisek 2014-12-10 22:22:12

+0

因此,看起來在獲取第二個存儲庫之後,我還沒有從中獲取任何文件......我試圖忽略它,檢查主人,然後嘗試合併合併測試人員......但顯然它表示它已經是最新的。 – JinLisek 2014-12-10 22:22:43

相關問題