我有合併和關閉請求。之後,我刪除了該分支。並且該分支的所有提交現在都顯示在合併分支的歷史記錄中。現在有一個選項可以在Git中恢復分支,但我真正想要的是壓縮該PR的某些提交,以便它不會顯示在合併分支的提交歷史記錄中。假設最初PR有5次提交併成功合併並關閉。 有沒有辦法壓縮合並和關閉的公關中的一些提交?Squash提交閉合請求
0
A
回答
0
你會使用git rebase -i <hash of first commit before merge>
,然後你可以選擇擠壓相關的提交。注意這是重寫實際的提交歷史記錄,所以如果你與其他人共享存儲庫,那麼在完成這些操作後你會有不同的提交,這是潛在的危險領域。
0
的唯一方法是改變在master
分支歷史(假設你的feature/branch
被合併上master
):
$ git checkout master
$ git reset --hard <commit-before-merge>
$ git push -f origin master
現在你可以修改你的歷史:
$ git checkout feature/branch
# Hypothesis: 5 commits to squash together
$ git rebase -i HEAD~5
# Rewrite your history: reword, squash, etc...
在這一點,也許你應該重新分配特徵/主分支
$ git rebase master
一旦你滿意你的分支歷史,你可以把上游:
$ git push -f origin feature/branch
然後創建GitHub上一個新的拉請求,並把它合併
重要事項
每個人跟蹤分支master
將不得不頒發git pull --rebase
以重新與上游重新同步它們的歷史記錄,其被改寫爲:
$ git checkout master
$ git pull --rebase origin master
這將防止任何衝突和/或合併提交將上游歷史視爲理所當然(接受theirs
),發出快進。
這同樣適用於分支仍取決於master
,這將需要相應地重建基礎:
$ git checkout feature/branch-still-depending-from-master
$ git rebase master
希望這有助於;)
相關問題
- 1. Squash提交到一個提交
- 2. Git擴展:Squash提交?
- 3. Squash在GitHub上提交PR
- 4. 上拉合併提交請求
- 5. 在Github中合併一些提交請求提交
- 6. git merge squash非連續提交
- 7. Git可以合併--squash保留提交註釋嗎?
- 8. Git的合併與--squash同時保持每個日誌提交
- 9. 不要關閉提交請求提交消息中提到的問題
- 10. 關閉gitlab合併請求
- 11. Git Squash按作者 - 所有作者提交到一個提交
- 12. 壁球提交拉請求
- 13. 多次提交Ajax請求
- 14. 提交POST請求到Piwik.php
- 15. 提交求職申請rails
- 16. 如何停止未提交的提交關閉的拉取請求
- 17. bootstrapValidator ajax請求,提交後阻止關閉bootstrap模態
- 18. 關閉,然後重新打開一個新的提交請求
- 19. 已刪除的拉取請求在合併的拉取請求中提交
- 20. 有沒有辦法壓縮已提交的合併請求中的提交?
- 21. 在github中,如何創建合併請求只提交1次
- 22. Gitlab:從提交ID獲取合併請求
- 23. 如何向另一個叉子提交合並請求?
- 24. Git - 合併提交拉請求,當一切都通過github.com
- 25. 如何在批准合併請求時壓扁提交,gitlab
- 26. Github拉取請求不包括'合併分支'提交
- 27. 合併已經處於拉取請求中的兩個提交
- 28. Git從合併請求中刪除不需要的提交
- 29. Squash在主控上提交,但在功能分支上單獨提交?
- 30. 表單POST提交請求顯示爲get請求
https://stackoverflow.com/a/47048569/2303202 – max630
我的問題是,我不能直接在合併的分支上更改提交歷史記錄,因爲這是受保護的分支。有沒有什麼辦法可以從封閉的請求或恢復的分支中重寫歷史? – Akshay
不,如果一個提交是某個分支的歷史,那麼它是如何發生的。 IT無法將其刪除。 – max630