2013-07-28 51 views
2

我有一個git倉庫(在github上),它擁有一個項目的第一個狀態,該項目已經被第一個開發人員拋棄了。備份然後用git重新設置master分支?

我們有些人已經決定收回這個項目,但我們同意不從之前的代碼開始,因爲它不符合我們打算做的事情,也沒有如此發達。

所以這是一個從頭開始,但我想跟蹤我們的前任做了什麼,所以我們可以在需要時參考它。理想的做法是擁有一個我們目前正在使用的master分支和一個old-dev分支的git倉庫,它在初始提交時從master分開,跟蹤舊版本master

閱讀這些頁面(renaming your master branchhow to create an empty branch)後,我試圖用git branch --orphan new-dev創建一個新的分支,並使用git branch -m master old-dev已經移到它old-dev後與這一個替換master。但然後git行爲奇怪,做一個初步提交複製舊master,然後讓我刪除一切。

我該怎麼做,我試圖乾淨,有一個master分支完全清理舊東西? 也許通過創建一個新的存儲庫並導入舊的存儲庫?還是有工具可以幫助我一個github?我不知道如何繼續......

回答

2

正如在「In git, is there a simple way of introducing an unrelated branch to a repository?」掛在嘴邊,git checkout --orphan「不會做完全提問者想要的東西,因爲它填充索引和<start_point>工作樹(因爲這畢竟,一個checkout命令)」

所以更清潔的解決方案是create your new master branch in a new git repo,然後導入分公司您當前的回購協議(其中master改名,並且那裏沒有一個master分支還)

$ cd /path/to/repo 
$ git fetch /path/to/unrelated master:master 

那樣,您的master分支從清潔歷史開始。

0
git checkout old_master -b 
git checkout master 
rm [all the old directories and files but not .git mind you] 
git add -u . 
gir commit -m "Brave new world" 

現在,您將在分支old_master和乾淨目錄中擁有舊代碼。

+0

當然,但是這樣做,我在master分支中保留了老dev的整個提交歷史。我的問題是擺脫這個歷史。 – Levans