Git 常用指令: commit, branch, merge, rebase
一個 commit 在 git repo 中會記錄目錄下所有文件的快照。感覺像是大量的複製和貼上
git commit
branch 其實就是在說:「我想要包含這一次的 commit 以及它的所有 parent 的 commit。」
用 git branch 來創建名稱為bugFix 的分支:
git branch bugFix
用git checkout [branch名稱]來切換到該分支
git branch bugFix
merge 會產生一個特殊的 commit,它包含兩個唯一 parent commit。一個 commit 如果有兩個 parent commit 的話,那就表示:「我想把這兩個 parent commit 本身及它們的 所有的 parent commit 都包含進來。」
git merge bugFix


rebasing 是 merge branch 的第二種方法。rebasing 就是取出一連串的 commit,"複製"它們,然後把它們接在別的地方。
我們想要把在 bugfix 所做的修改直接移到 main branch上。使用 rebasing 的話,兩個 branch 看起來像是依序按順序進行修改,實際上它們的修改是平行進行的。
git rebase main


現在 bugFix branch 上的工作在 main branch 的最前端,同時我們也得到了一個更加線性的 commit 順序。
注意,本來的 commit C3 沒有消失(在圖上面呈現陰影),而我們"複製" C3,將它的副本 C3' 接在 main branch 的後面。
現在唯一的問題是 main branch 還沒有更新...我們接下來就更新它吧!
git rebase bugFix
