Git 是學習軟體開發不可或缺的工具,本系列文不只示範基礎指令,更進一步探討在每次操作時,.git/ 資料夾發生的變化,藉此一窺 git 幕後的運作機制。
在 Day 20 文章中,我們提到要讓一個檔案退出預存區,除了 git reset 之外,還有一種指令是 git rm --cached,但當時只是快速帶過,在...
在許多比較早期的 git 教材中,如果提到要切換分支,都是使用 git checkout 指令,但我的文章卻從來沒用過,而是用 git switch,為什麼?...
要展現 git 的協作功能,則不能不提其開分支、合併分支的機制。之前我們在 Day 9 提過,分支的本質是「參考(ref)」,那合併時,這些參考是怎麼跑的?新的...
除了 git merge,另一指令 git rebase 也能把兩分支變成一個分支,單看名稱看起來是「把整段分支基底搬家」,但在 git 內部真的是這樣運作的嗎...
在 Day 24 文章中,我們探討了 git rebase 是如何「看似」把一個分支的 commit 搬到另一分支,但其實 git 內部做的事情是做出「新的 c...
如果不慎把如含有個資、密碼等機敏資訊的檔案放到 commit 裡,希望改寫過往歷史紀錄,把與機敏資訊有關的檔案通通刪除,可以使用 git filter-bran...
在 Day 26 的文章中,我們發現跑完 git gc 後,.git/objects 為空,但是 .git/objects/info 跟 .git/object...