簡體   English   中英

將本地存儲庫合並到遠程存儲庫

[英]merge local repository to remote repository

我需要將本地存儲庫復制到github中私有的遠程存儲庫。

現在,我在自己的gitlab服務器中擁有我的代碼庫,客戶要求我通過將其存儲庫添加為我的gitlab存儲庫的遠程存儲庫,將我的代碼合並到他的存儲庫中。 我不確定如何實現這一目標。 我可以按照以下步驟操作,但無法推送代碼。

cd my-code
 git remote add client 
 git push origin client
 error: src refspec ben does not match any.
 error: failed to push some refs to

我做錯了嗎? 有人可以指導我以書面形式嗎?

兩種歷史都不相關,所以這次基本的git命令無法為您提供幫助

例如,您的回購記錄具有以下歷史記錄(這是一個簡化的版本,僅用於顯示概念):

A-B-C <-主

而您要推送的回購(客戶端)具有以下內容:

S-T-U-V-X-Y-Z <-主

如果您嘗試對您的客戶進行回購,這將被拒絕,因為Z不是C的祖先,即使Z與C都沒有任何關系

如果您強行執行( 要這樣做),則將覆蓋您客戶回購中的所有信息,因此, 不要這樣做

如果您不介意丟失所有歷史記錄,則可以將文件復制到客戶端存儲庫的本地克隆,並僅執行一次“將我的所有文件添加到存儲庫”提交,但是如果出於某種原因需要將歷史記錄保留在客戶端存儲庫上,這就是我要做的:

將所有更改重新基於client / master分支,但是在此之前,您需要檢查客戶端repo是否可以將目錄結構合並到它們中,或者是否需要將代碼推送到子目錄(第一種情況,跳轉至步驟1,第二種情況繼續執行步驟0)

步驟0)將文件移動到子目錄

git filter-branch --tree-filter 'mkdir anothernewdir; mv *.* anothernewdir/'

注意:如果需要撤消過濾分支操作,可以使用git reset來完成:

git reset --hard master@{1}

第1步:重新建立客戶分支

git rebase client/master

步驟2)使用-u標志推送您的更改(無需強制推送)(以跟蹤上游)

git push -u client master:refs/heads/master

push命令的模式如下:

git push <remotename> <branchname>

因此,如果您使用遠程名稱客戶端從客戶端添加存儲庫(通過執行“ git remote add client”來完成),則push命令應如下所示:

git push client <branchname>

對於<branchname>,您應該插入要推送的分支(可能是功能或開發分支)。

推送之前的git pull client應該解決

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM