2011-06-16 38 views
4

我有一個Git存儲庫,其最早的提交版本是6.8.2(它被標記爲「v6.8.2」)。我希望提交到版本庫的版本爲6.8.1,作爲最舊提交的父提交。這可能嗎?如果是這樣,怎麼樣?在Git中,我如何創建一個在最老的提交之前的提交?

+2

已經推? – hakre 2011-06-16 20:53:43

+0

Hakre,no。該存儲庫是私有的,並且沒有克隆。 – 2011-06-16 22:01:56

+0

您可以收回6.8.2提交,完成6.8.1提交,然後在6.8.2提交之後完成 - 只需重寫歷史記錄即可。因爲你還沒有推動沒有問題。 – hakre 2011-06-16 22:22:29

回答

4

您可以在您想要的最舊提交(v6.8.1)之上重新綁定當前分支。它會重寫你的歷史,但是這是可能的。

編輯以添加更多

假設你的代碼是在分支master

清除了存在的代碼,並創建一個新的分支。您的舊代碼不會丟失 - 它仍然存在於主分支上。

git symbolic-ref HEAD refs/heads/newbase 
rm .git/index 
git clean -dxf 

現在你的分支newbase這是一個空目錄。將您想成爲新基地的文件添加到此處。

<add the files to the directory> 
git add . 
git commit -a -m "New base commit v6.8.1" 

新你有兩個分支master其中有你的原代碼和newbase它只有你的新基地。

現在簽出master分支和重訂其於newbase分支

git checkout master 
git rebase newbase 

,然後將所有你需要做的是解決衝突,你有一個新master分支開始於的早期狀態碼。

雖然這是一團糟。如果您只想將代碼添加到存儲庫,只需執行第一個位,即可創建新分支。對它進行標記以便知道它是什麼,不需要重新綁定master分支,因爲如果您到達主站的底層,並且想要進一步及時返回 - 您可以看到其他站點中的內容科。

+0

我不明白這是因爲存儲庫不包含版本6.8.1的提交。我的問題是如何獲得該版本的提交到存儲庫,然後如何使它成爲初始提交的父代。 – 2011-06-16 22:00:22

+0

@Steve Emmerson - 現在更新。 – Abizern 2011-06-16 23:21:37

相關問題