簡體   English   中英

如何將 Git 存儲庫轉移到另一個主分支

[英]How to transfer a Git repo to master branch of another

我剛剛完成了我的模板引擎 Squirrelly 的開發。 我將當前版本存儲在https://github.com/squirrellyjs/squirrelly的 GitHub 存儲庫中,並將新版本存儲在https://github.com/squirrellyjs/squirrelly-next

我的問題與最終在 NPM 上發布有關。 最初我計划在squirrelly-next發布,然后稍后合並,但我想我決定只在squirrelly@8.0.0發布。

然而,問題是所有新的開發都在squirrelly-next庫中,我需要以某種方式將代碼和歷史記錄到squirrelly庫(帶有v7的分支)。

我實際上只是考慮將https://github.com/squirrellyjs/squirrelly重命名為https://github.com/squirrellyjs/squirrelly-v7並將https://github.com/squirrellyjs/squirrelly-next重命名為https:// /github.com/squirrellyjs/squirrelly 這會不會有任何潛在的缺點? 如果是這樣,我怎么能得到我的Git從回購squirrelly-next來的主分支squirrelly

可能有多種選擇可以做到這一點,但是,我正在描述我最常用的一種方法是您可以在項目中添加兩個存儲庫。

假設有一組作為你的原點,

https://github.com/squirrellyjs/squirrelly

您可以通過git remote -v檢查它,它為您提供列表或遠程存儲庫。

您需要創建一個新的存儲庫,您需要將代碼移動到該存儲庫

https://github.com/squirrellyjs/squirrelly-next

然后,按照以下命令返回到您的項目。

git remote add new-origin https://github.com/squirrellyjs/squirrelly-next

git fetch new-origin

就是這樣,

現在,如果您想將任何分支從 origin 移動到 new-origin,請按照以下步驟操作。 假設我正在做一個例子,我們想將舊源的主分支移動到新源

我們只需要檢查我們舊來源的 master 分支

如果新存儲庫上不存在分支

git push new-origin master

如果存在,那么首先您需要在本地獲取新的存儲庫分支

git checkout new-origin/master

在本地創建分支。

git checkout new-master

在將 master 合並到 new-master 之前,我們需要 rebase if new-master with master

git checkout master //which is from old repository.

git rebase new-master

解決沖突(如果有)

git checkout new-master
git merge master
git push new-origin/master

這將有最新的代碼以及來自舊存儲庫的代碼。

那么你需要在本地為分支設置跟蹤,

git branch --set-upstream-to=new-origin/master

或者您可以刪除舊原點並將新原點重命名為原點

git remote rm origin
git remote rename new-origin origin

如果您按照第二步操作,則無需更改分支的跟蹤信息。

我意識到嘗試將我的新存儲庫與舊存儲庫合並實際上並不是必需的,因為它們具有不相關的歷史記錄,而新存儲庫是從一個空存儲庫開始的。

所以,我最終只是使用https://stackoverflow.com/a/34100189/7983596創建了一個新的空白分支。

然后,我將遠程路徑添加到我的新存儲庫,並將我的新存儲庫與我的新空白分支合並(小心:我需要先git add .git commit )。

之后,我按照本指南: https : //multiplestates.wordpress.com/2015/02/05/rename-a-local-and-remote-branch-in-git/將我的舊主分支重命名為v7 ,然后重命名我要master新空分支。 (我不得不更改 GitHub 上的默認分支)

暫無
暫無

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

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