[英]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.