2017-02-12 71 views
1

我有一個項目並開始使用新版本。這個項目現在與以前的版本完全不同,它的功能很少,也沒有API。遷移到新的git倉庫在某個點後面留下舊的倉庫

我想將自最近發佈以來發生的更改轉換爲新的存儲庫。我想在開始重構之前將舊的存儲庫留在狀態中。

我可以簡單地在新的存儲庫中進行初始提交,然後強制恢復舊的存儲庫。但我懷疑這會在社區中受到強烈的折磨。

我懷疑還有一種方法可以做到這一點有關HEAD。我的所有更改都是由原始主人完成的,因爲它是一個小型圖書館。

+1

創建新的清潔存儲庫,將其添加爲額外的遠程並推送到它? – k0pernikus

+1

您也可以使用github的fork按鈕將自己的存儲庫分成新的存儲庫。 – k0pernikus

+0

@ k0pernikus和舊的?及時扭轉它? – kequc

回答

1

git存儲庫可以指向不同的遠程存儲庫。

你只已origin確定最有可能的,你可以一一列舉:

git remote show 

在GitHub上,你可以創建一個乾淨的庫,例如your-user/new-remote-repo.git。 (沒有選擇「初始化這個資源庫和自述」。)

然後在你的本地庫,你可以添加新的遠程:

git remote add new-remote-repo [email protected]:your-user/new-repo.git 
git push -u new-remote-repo master 

爲了重置當前倉庫的時候,你只是簽出相關的提交併強制推送它。

git checkout master 
git reset --hard your-hash 
git push --force origin master 

雖然我建議不要重寫已經發布的主控。由於其他人可能已經取決於您的master分支,並且他們可能會出現衝突狀態,導致混淆。

我寧願在舊版本庫中創建一個指向最後工作狀態的last-relase標籤,並在Readme.md中聲明它爲最終版本。

+0

謝謝你的深入解釋,這正是我所需要的。除了我自己,倉庫已經暫時休眠了一段時間。所以我覺得清理是安全的。對於任何擁有我主人的人,我感到抱歉! – kequc

+0

@ NathanLunde-Berry如果這對你有幫助,請註冊並接受:) – k0pernikus