Git
merge 和 git rebase 分別
在 Git 中,git merge
和 git rebase
都是用來合併分支的工具,但方式不同:
-
git merge
- 把兩個分支的歷史合併,保留各自的提交歷史。
- 會產生一個新的「合併提交」(merge commit)。
- 優點:歷史清晰,能看出分支何時合併。
- 缺點:可能使歷史變得較雜亂。
-
git rebase
- 把一個分支的提交移動到另一個分支的頂端。
- 不產生合併提交,但會「重寫歷史」。
- 優點:歷史線性,看起來更簡潔。
- 缺點:可能導致問題(如衝突難以追蹤),不建議用在已分享的分支上。
git 復原
-
使用
git revert
git revert <commit-hash>
這會創建一個新的提交,反轉指定提交的更改,保留提交歷史。- 如果需要回退多個提交,可以使用多次
git revert
,或者: - 解決可能的衝突,然後完成提交。
-
推送到遠端
- 完成回退後,將新的提交推送到遠端:
注意:
- 不要使用
git reset
回退已公開的提交,因為這會修改歷史,對其他協作者造成影響。 git revert
是修改已公開提交的最安全方法,因為它保留了完整的提交記錄,且不會破壞協作者的工作流程。