2013-01-03 97 views
11

在Google上有很多答案指向同一方向,但是當涉及到版本控制時,我不想嘗試任何操作,然後搞亂我的存儲庫。將git存儲庫移動到另一個github用戶

我已經在GitHub上建立了一個倉庫,並且想將它移動到另一個用戶,以便我可以關閉倉庫。一旦屬於他的賬戶,他就會邀請我回購。我想這是與客戶合作的一個常見用例 - 一旦你完成了項目,你就把它交給他們。

現在,假設這是可能的,我將如何更改項目中的本地Git設置,以便我現在正在推進/從新位置拉出?而且,通過移動回購,我會失去提交歷史記錄嗎?

回答

10

以下任一將工作:

  • 剛剛轉會回購的所有權轉讓給其他用戶,並讓他們加入你作爲一個合作者。

  • 但是,如果有人分叉你的回購,那麼你刪除原來的,他們的叉子仍然在那裏。他們然後可以將您添加爲他們的叉式回購協作者。

  • 或其他用戶可以簡單地克隆您的回購(完整提交),在github上創建一個新回購庫,添加新回購庫的遠程信息,並將您的回購庫升級到新庫。 (然後將你添加爲合作者)

+0

真棒,謝謝! – weltschmerz

+2

只需要xero在所選答案中更正某些內容。 Github文檔說:「刪除將刪除所有分支的存儲庫。請注意,這隻會影響私有存儲庫,而不會影響私有存儲庫。」因此,它看起來像上面的評論,「但如果有人叉你的回購,那麼你刪除原來的,他們的分叉仍然存在,」是不正確的,如果回購是私人的。 – JazzTpt

+0

https://help.github.com/articles/what-happens-to-forks-when-a-repository-is-deleted-or-changes-visibility/ 但是,如果他們刪除所有的叉,文件上用戶電腦應該仍然在那裏,我想,完全的歷史吧?那麼可以創建新的存儲庫。但是爲什麼分叉,爲什麼不克隆呢?然後,據我所知,它不會與父母關聯。 –

0

你不會失去任何東西。這是git的要點。該項目的每個副本都有一個完整的repo副本 - 你擁有它,github擁有它,任何分叉它的人都擁有它。

遠程的配置只是在git的/ config文件的行:

url = [email protected]:mattneub/Programming-iOS-Book-Examples.git 

您可以刪除舊的遙控器和創建一個新的,但最簡單的事情就是編輯該行用手。

這裏沒有神祕感。 .git文件夾和您的存儲庫直接打開您的視圖。

4

你爲什麼不在github內部做到這一點?只需將所有權轉讓給新用戶。轉到Github上的設置。

轉讓所有權:將此回購轉讓給另一個用戶或轉到您擁有管理權限的 組織。

+0

這似乎並不像聽起來那麼容易 - 出現很多信息的長時間警告。如果我執行以下操作:其他用戶設置新的回購,我將本地回購地址更改爲新回購地址,推送並刪除自己的回購。這會起作用嗎?新的回購會失去提交歷史記錄嗎? – weltschmerz

+0

是的,你的方法也可以。你不會失去任何歷史。 –

+0

非常容易和有效。 –

7

要回答的問題:

  1. 你不會失去任何東西 - 甚至不提交歷史。 Git的意義在於它是分散的 - 每個擁有版本庫副本的人都擁有一切。只是新的回購。

  2. 很容易更改git設置以推送到新的存儲庫。您可以使用

    git remote set-url origin git://new.url.here 
    

    或編輯.git/config文件。

我會說,你應該:

  1. 庫的所有權轉移(或在客戶端叉的話)。
  2. 更改你的git配置以推送到新的存儲庫
  3. 你完成了。
相關問題