2017-04-26 69 views
0

所以我有一個分支,我已皇家搞砸了,它現在有超過300個提交,我可以看到是舊的提交屬於其他的分支,他們的方式來掌握。Git:創建分支從幾個特定的​​提交,但在幾百個其他提交

我基本上只是想讓分支看起來像它在我打破它之前。如果有必要,我可以創建一個新的,我只是想再次推動分支,它必須像原來那裏的10個提交。

含義我希望它從一個特定的提交開始,並在特定的提交結束。那些提交目前在相關的分支上,它們也是直接相互關聯的,它們之前只有300個提交,我不想要。

+0

適當的解決方案取決於你如何「破壞」分支。你能鏈接到你的倉庫嗎?如果不是,你可以發佈'git log --oneline --graph - decorate'輸出相關的部分嗎?具體的日誌消息並不重要,地形和分支機構都是如此。 – Schwern

+0

在300次不需要的提交(使用git checkout)之前,回到最後一次提交,然後在不需要的300次提交之後選擇10次提交。 – eftshift0

回答

1

您可以按照下列步驟操作。

  1. 在所需的提交中創建一個新分支,您需要啓動相關分支並檢查它。

  2. Cherry按照正確的順序將您實際需要的每個提交按鈕分配到新分支(因爲只需要10次提交,所以這應該很簡單)。

  3. 將有問題的分支硬重置爲新分支現在指向的提交。

如果有大量您在分支機構和小型號碼,你需要刪除提交的要提交的,你可以交互變基(git rebase -i)的問題到新分支的分支,上述步驟1後(它會交互地詢問你需要添加的提交,並提交你需要忽略)。

在你開始之前,最好在你的分支指向的同一個提交中創建一個新的分支,這樣你可以很容易地恢復,如果你搞砸了。在開始之前備份完整的存儲庫也是一個好主意。

+0

非常感謝你,像一個魅力工作。 – BlindChicken

相關問題