很長一段時間以來,我一直認為 Git 只是我為了生存而不得不使用的工具。
輸入命令。
希望沒事。
如果真是這樣……趕快用谷歌搜尋。
我死記硬背了命令,卻不理解它們的意義。
從 Stack Overflow 複製了修復方案。
祈禱不會遇到合併衝突。
不知為何……我每天都在使用 Git,卻始終沒有建立起自信。
我花了好長時間才意識到這一點:
大多數開發者並不會使用 Git 的全部功能。
他們使用少量命令……並深入運用。
當我不再把 Git 當作魔法工具使用時,
它變成了一個我真正可以信賴的工具。

Git 一開始會讓人覺得難以駕馭,因為它會記住所有東西。
每一個錯誤。
每一次實驗。
每次都說「我待會兒再收拾」。
這可能會很可怕。
但 Git 並不會評斷你。
它在保護你的作品,即使你還沒有意識到這一點。
一旦我接受了這一點,學習 Git 就不再讓我感到壓力了…
並開始感覺自己掌控了局面。
你不需要50個指令。
你需要冷靜而有目的地使用正確的15分鐘。
這些都是在真實專案、真實團隊、真實日常中出現的情況。
git status — 檢查倉庫的目前狀態
git status顯示儲存庫中哪些檔案已修改、已暫存、未追蹤或準備提交。
常見錯誤:
在未先檢查git status情況下執行其他 Git 指令,就是人們提交或刪除錯誤檔案的方式。

git init — 初始化一個新的 Git 倉庫
git init透過為專案目錄新增版本控制追蹤來建立一個新的 Git 倉庫。
常見錯誤:
在已初始化的倉庫中執行git init ,會建立一個嵌套的.git資料夾,完全搞亂 Git 的運作機制。

git clone — 將遠端倉庫複製到本地
git clone會下載遠端倉庫並建立完整的本機副本,包括其提交歷史記錄。
常見錯誤:
克隆倉庫後,在不了解分支結構的情況下立即推送變更。

git add — 為下次提交暫存更改
git add會將檔案變更移至暫存區,以便將其包含在下一次提交中。
git add .新增目前目錄及其子資料夾中的所有變更。
⚠️ 如果您位於子資料夾中,則不會包含父目錄檔案。
僅新增目前目錄中的非隱藏檔案。
⚠️ 跳過.env 、 .gitignore等檔案。
git add :新增倉庫根目錄的所有更改,包括隱藏檔案。
✅ 如果您想要一切,無論地點如何,這是最安全的選擇。
常見錯誤:
盲目地使用git add .並意外地暫存了你不打算提交的文件。

git commit — 儲存變更的快照
git commit會將暫存的變更記錄為專案歷史記錄中的快照,並附帶描述性訊息。
常見錯誤:
寫一些含糊不清的訊息,例如“更新”或“修復問題”,這會讓以後的除錯變得很痛苦。

git log — 查看提交歷史記錄
git log顯示先前的提交列表,顯示變更、作者和時間戳記。
常見錯誤:
忽略提交歷史,試圖猜測錯誤是什麼時候引入的。

git diff — 查看更改內容
git diff顯示文件版本、提交或分支之間的逐行差異。
常見錯誤:
跳過git diff ,未經檢查實際更改內容就提交程式碼。

git branch — 管理並行開發
git branch可讓您建立、列出、重新命名或刪除分支,以便進行不同的開發工作。
常見錯誤:
所有工作都在main上完成,而不是建立功能分支。

git checkout / git switch — 安全地在分支之間切換這些命令允許你在分支之間切換。
只有git checkout才能從另一個分支或提交中復原檔案。
git checkout branch-name雖然年代久遠,但仍被廣泛使用。
git switch branch-name更新、更清晰、更安全的分支切換方式。
常見錯誤:
切換分支時,由於變更尚未提交,導致意外遺失工作成果。

git merge — 合併來自不同分支的更改
git merge將一個分支的變更合併到另一個分支中,合併它們的歷史記錄。
常見錯誤:
未先拉取最新更改就進行合併,會導致不必要的衝突。

git pull — 更新本地倉庫
git pull從遠端倉庫取得變更並將其合併到目前分支(透過合併或變基,取決於配置)。
常見錯誤:
直接將變更拉取到已修改的工作目錄,而不是先提交或暫存。

git push — 與他人分享你的提交
git push會將本機提交上傳到遠端倉庫,以便其他人可以存取它們。
常見錯誤:
忘記先拉後推,導致推力被拒絕和混亂。

git stash — 暫時儲存未完成的工作
git stash儲存未提交的更改,以便您可以返回乾淨的工作目錄。
git stash儲存變更並清理工作目錄。
git stash pop恢復並刪除最近的儲存位置。
git stash list顯示所有已儲存的藏匿點。
常見錯誤:
把零錢藏起來,然後忘記它們的存在。

git reset — 撤銷變更並控制
git reset會移動目前分支指針,並可選擇更新暫存區和工作目錄。
git reset --soft HEAD~1保持變更分階段進行。
git reset --mixed HEAD~1 (預設)保持變更不預先安排。
git reset --hard HEAD~1永久刪除更改。
常見錯誤:
使用--hard而不了解它會永久刪除工作。

git revert — 安全地撤銷共享歷史記錄中的更改
git revert會建立一個新的提交,以撤銷先前提交的效果,而不會重寫歷史記錄。
常見錯誤:
在共享分支上使用git reset而不是git revert ,會重寫團隊成員的歷史記錄。

這是沒人會告訴你的事:
對 Git 的信心並非一蹴可幾。
它生長緩慢。
犯錯之後。
衝突之後。
修好了你以為永遠壞掉的東西。
總有一天,你會不再恐慌。
你停頓了一下。
你檢查了git status 。
然後你平靜地向前走去。
這是進步。
❌ 我不會盲目複製指令
❌ 我不怕弄壞東西
❌ 我不會倉促處理衝突
❌ 我不會把 Git 當作魔法。
Git 不是需要對抗的東西。
這需要慢慢理解……一次只理解一條指令。

如果現在你覺得 Git 很複雜,那也沒關係。
我們所有人都有這種感覺。
你不需要精通所有事情。
你只需要熟悉基本知識,並相信隨著使用次數的增加,理解自然就會到來。
Git 指令並不追求完美。
它們關乎進步、歷史,以及幫助軟體工程師在不失去工作成果的情況下學習💻
慢慢來。
犯錯。
慎重決定。
祝各位朋友在 Git 之旅中提交的程式碼乾淨整潔,衝突減少,充滿信心💙。
感謝閱讀! 🙏🏻
希望這對您有幫助✅
請按讚並關注,以獲得更多精彩內容😍
由Hadil Ben Abdallah傾情打造 |
|
|---------|----------|---------|
{% embed https://dev.to/hadil %}