2013-10-15 66 views
8

我打算重新命名我的git存儲庫中的分支。我發現做這件事的簡單方法是從該分支創建一個新的分支並給它所需的名稱。如果我在git中刪除父分支,會發生什麼情況

之後,我想刪除舊分支(父母)。但是,如果我這樣做,恐怕我會在新分支中丟失數據。

如果我刪除該分支,最初對父分支進行的提交會發生什麼?

回答

8

會發生什麼?沒有。

如果您創建了另一個分支,您可以「刪除」該分支而不會丟失任何東西。分支(HEAD)只是一個提交的指針。
只要這些提交被分支HEAD引用(或者是分支HEAD祖先的一部分),它們就不會丟失。
即使它們不再被任何分支或標籤引用,它們仍然在本地reflog(默認情況下)爲90天。

但是,看着man page for git branch,這似乎更容易:

git branch (-m | -M) [<oldbranch>] <newbranch> 

有了:

-m 
--move 

移動/重命名一個分支,相應的引用日誌。

-M 

移動/重命名一個分支,即使新分支名稱已經存在。

1

只需使用git格式補丁:

git的格式補丁的起源-o {} output_folder

讓所有的補丁出來之後,去到主,並創建一個新的分支

然後應用這些補丁這樣: 混帳上午{output_folder}/{}修補程序名稱.patch

然後驗證你沒有丟失任何信息後,你可以刪除舊的分支可以用git branch -D {} name_old_branch

+0

在不需要的分支之間,只需創建另一個分支標籤就可以實現。但我已經成功地使用此方法將修補程序應用於移動的回購。變更集是基於舊的回購(位置)創建的,但需要推送到另一個,'git format-patch'是保留時間戳和改變提交之間分配的好方法。 – starturtle

相關問題