Git 是學習軟體開發不可或缺的工具,本系列文不只示範基礎指令,更進一步探討在每次操作時,.git/ 資料夾發生的變化,藉此一窺 git 幕後的運作機制。
在 Day 10 的文章中,我們發現在經過 git add 指令後,.git/ 資料夾會發生下列兩大變化: 在 objects/ 資料夾跑出一個 blob 物...
在 Day 10 文章中,我們觀察到輸入 git add 指令後,objects/ 資料夾會出現一個新的 blob 物件,物件相關資訊存在 index 裡;在...
在 Day 5 文章中,我們提到若不小心做錯,想退回去前面 commit 的狀態,可以用 git reset 或 git revert 指令,但事實上 git...
當我們做了多次 git add、git commit 指令,又在工作目錄中做了一些更改時,很容易忘記在哪邊改了什麼,這時就可以用 git diff 指令比較。...
在 Day 3 的文章中,我們提到 git 有 blob、tree 跟 commit 三種物件,但事實上還有第四種:tag(標籤)。 標籤可以用 git tag...
當我們正在進行某項工作,突然因為老闆/專案經理等人要求或種種原因,要先把手上事情擱著,先處理更急的事情(作業系統中的「上下文交換(context switch)...
在 Day 16 文章中,我們示範了用 git stash 暫存進度,但不會形成 commit。在這個單元,我們將深入探討 git stash 指令對 .git...
如果在某分支開發的過程中,想要引入另一分支特定的 commit、而沒有要把另一分支所有的 commit 都合併進來,可以用 git cherry-pick 指令...
如果希望某個檔案不要被 git 追蹤,共有兩種方式,一種是讓協作的所有成員都知道這個檔案不要被追蹤,就放在 .gitignore;另一種是只在自己的本機端不要被...
在 Day 19 文章尾聲,我們提到不論是 .git/info/exclude 或 .gitignore,都是對「尚未被 git 追蹤的檔案」才有效。在此篇文章...