2015-10-27 131 views
0

我把我的項目從錯誤的項目中分出來了(叉叉),我想重置我的GitHub倉庫以分離原始項目。在GitHub中移動分支涉及刪除和重新AFAIK。唯一的問題是我想將我的舊的遠程分支引用推向新的分支,而沒有創建本地分支,因爲(爲了爭論起見)我有100個不同的分支,並且需要太多時間來檢查新的本地版本每個遠程分支。 (我的本地分支清單非常精簡,但我通常在GitHub上留下修補分支)。將整個遠程git存儲庫推送到另一個遠程

+1

我不完全理解這個問題,但是您是否試過添加一個新的遠程('git remote add $ name $ url'),然後運行'git push --all'(或'--mirror')? – Whymarrh

+0

如果我做git分支-a我會在本地看到1或2個分支,然後有100個分支說/ remotes/repoA/branchName,我希望它們在branchB中顯示爲/ remotes/repoB/branchName,而不必創建本地分支和做推--all – BunnyStrider

+1

我認爲'--mirror'就是你要找的。使用鏡像標誌將磁盤上的存儲庫克隆到新位置,將新的遠程磁盤添加到它,然後用鏡像標誌將其推送到新的遠程計算機。 – Whymarrh

回答

1

可以使用右refspecgit push(步驟4)實現這一點:

  1. 通過重命名遠程重命名遠程跟蹤引用refs/remotes/origin/...refs/remotes/oldfork/...git remote rename origin oldfork
  2. 刪除並重新叉回購由GitHub
  3. 重新添加origin遠程:git remote add origin <url>
  4. 推老枝新的叉:git push origin 'refs/remotes/oldfork/*:refs/heads/*'
  5. 刪除oldfork遠程:git remote remove oldfork

如果你在原來的叉了自己的標籤,請加--tagsgit push命令行。

相關問題