新手村導讀 - 5: Git(1)

更新於 發佈於 閱讀時間約 4 分鐘

我想每個工程師應該或多或少都有版控的經驗,然而對於剛進這行的新手工程師們可能並未如此。(事實上,我剛進第一家公司時是沒有太多相關知識,然後就去乖乖啃書了)因此這篇就來介紹一下版控 & git 吧!第一篇會稍微介紹版控跟專案的內容,第二篇則會介紹基礎常用的指令,而第三篇會介紹一下我常用的其他指令喔。

版控

全名為版本控制,主要是控制哪些內容要留、哪些不用。在求學時期,由於頂多是一個小組、三四個人協作,因此彼此詢問一下、確認修改內容也是很方便的事情。不過在出了社會、跟多人協作的狀況下就並非如此了。當兩個人同時對相同檔案做修改時,如果單純地將整個檔案複製貼上,那就容易發生其中一個人的修改被覆蓋掉的情形,因此才需要有版控的機制。而現在主流的版控便是 git 了。

開發流程

比較講究流程或是比較大的公司裡,會有一套開發流程。在產品或功能開發出來後,會需要經過測試區測試,並且在上線出現問題時有緊急修復的流程等。現今的開發流程有許多都是來自 Git Flow 的改念去變形而成。詳細資訊我附在參考資料喔!

Webhook

要記得設定專案伺服器與 GitHhub(或是其他版控平台) 之間的 webhook,否則每次程式碼更新後,都會需要去該伺服器的專案底下去下指令 git pull,如此才會讓線上版本更新。還挺麻煩的。

git config

這個指令是用於設定在本地開發的 git 相關內容,包含你的帳號、 email 與遠端連結。

*查看目前的設定: git config --list

git remote

可以用這個指令做遠端的相關設定與修改。此外,可以用 git clone 直接將遠端內容整份抓取下來。

git blame

這個指令是萬惡的根源之一,他可以告訴你這個檔案或是這行內容上次是誰改的,讓你順利地去找人吵架

*查看特定行數: git blame -L 起始行數,結束行數 檔案名稱

Head

Head 代表目前檔案所在的版本位置。一般來說,我們會跟 Head 有關的操作應該只有切換分支的時候( git branchgit checkout),因此我們不太會對 Head 本身進行操作,會讓它保持在原本跟分支最新 Commit 點綁定的狀態,所以沒有特殊理由不會用到這區的指令。

*相對位置向上移動(^數量代表移動次數): git checkout 分支名稱^git checkout 分支名稱^^

*相對位置向上移動(~數字代表移動次數): git checkout 分支名~3

*也可以結合以上兩者,例如: git checkout HEAD~^2~2

Head、Branch 以及 Commit 點

最後,來跟大家解釋一下很常讓人誤會的內容: Head、branch 以及 commit 點。

Commit 點代表著一次提交,每個 Commit 點有一個自己的 Hash 值,而同一個 Commit 內容在不同分支上不是同一個 Hash 值!因此我們可以直接用 Hash 值去指定操作的分支以及位置。

Head 代表在目前分支上你所停留的位置,注意這並不代表你一定在最新的位置!舉例來說,目前的分支依序有 A、B、C 三個 Commit 點,一般我們會停留在 C 點接續開發,但有時我們會發現 C 的修改已不復使用,那我們可能會選擇回到 B 點去重新開發,而不是在 C 點開發並把修改的調整回去。

最後,在一般的 Git Graph 中,遠端 Branch 的位置通常是在該分支的最新 Commit 點,這是因為初始設定是 Head 與最新位置綁定在一起,因此當有人提交新的內容, Head 便自動往前移動。如果希望分離,那就需要額外下指令才行。

我在參考資料中有附上開源的 git 小遊戲(參考資料第六條),大家有興趣的話可以去做個練習喔~

參考資料:

  1. https://gitbook.tw/chapters/gitflow/why-need-git-flow
  2. [Git] 常用指令表 - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天 (ithome.com.tw)
  3. https://gitbook.tw/chapters/config/user-config
  4. Git switch remote URLs. Git 更換遠端伺服器倉庫網址 · GitHub
  5. 【狀況題】等等,這行程式誰寫的? - 為你自己學 Git | 高見龍 (gitbook.tw)
  6. https://learngitbranching.js.org/?locale=zh_TW
留言
avatar-img
留言分享你的想法!
avatar-img
林柏宇的沙龍
2會員
47內容數
test
林柏宇的沙龍的其他內容
2025/04/27
JWT(JSON Web Token)是基於 JSON 格式的開放標準,主要用於身份驗證與權限確認。本文介紹了JWT的基本結構,並闡述其特點,如降低資料庫壓力、靈活性及無狀態性。JWT 特別適用於分佈式系統。本篇將協助讀者深入理解 JWT 的重要性與實際應用。
Thumbnail
2025/04/27
JWT(JSON Web Token)是基於 JSON 格式的開放標準,主要用於身份驗證與權限確認。本文介紹了JWT的基本結構,並闡述其特點,如降低資料庫壓力、靈活性及無狀態性。JWT 特別適用於分佈式系統。本篇將協助讀者深入理解 JWT 的重要性與實際應用。
Thumbnail
2025/04/20
本文介紹了容器的基本概念、組成部分以及其在應用開發中的重要性,特別是對初階和高階工程師的影響。透過深入探討容器的優點,以及Docker、Kubernetes和ArgoCD等相關技術,幫助讀者理解容器化的應用與管理,進而簡化開發過程並提高效率。適合對容器技術感興趣的開發者從零開始學習與掌握。
Thumbnail
2025/04/20
本文介紹了容器的基本概念、組成部分以及其在應用開發中的重要性,特別是對初階和高階工程師的影響。透過深入探討容器的優點,以及Docker、Kubernetes和ArgoCD等相關技術,幫助讀者理解容器化的應用與管理,進而簡化開發過程並提高效率。適合對容器技術感興趣的開發者從零開始學習與掌握。
Thumbnail
2025/04/13
本文探討自動化測試的核心理念與實際應用,涵蓋如何模擬運行環境、確保程式碼在各種情境下的穩定性,以及進行錯誤處理的方法。文中指出自動化測試的各種優點,並提到設計測試的注意事項。透過使用相關工具和方法,讀者可以有效進行功能測試,並掌握相關技巧以應對常見問題,讓開發過程更為順利。
Thumbnail
2025/04/13
本文探討自動化測試的核心理念與實際應用,涵蓋如何模擬運行環境、確保程式碼在各種情境下的穩定性,以及進行錯誤處理的方法。文中指出自動化測試的各種優點,並提到設計測試的注意事項。透過使用相關工具和方法,讀者可以有效進行功能測試,並掌握相關技巧以應對常見問題,讓開發過程更為順利。
Thumbnail
看更多
你可能也想看
Thumbnail
TOMICA第一波推出吉伊卡哇聯名小車車的時候馬上就被搶購一空,一直很扼腕當時沒有趕緊入手。前陣子閒來無事逛蝦皮,突然發現幾家商場都又開始重新上架,價格也都回到正常水準,估計是官方又再補了一批貨,想都沒想就立刻下單! 同文也跟大家分享近期蝦皮購物紀錄、好用推薦、蝦皮分潤計畫的聯盟行銷!
Thumbnail
TOMICA第一波推出吉伊卡哇聯名小車車的時候馬上就被搶購一空,一直很扼腕當時沒有趕緊入手。前陣子閒來無事逛蝦皮,突然發現幾家商場都又開始重新上架,價格也都回到正常水準,估計是官方又再補了一批貨,想都沒想就立刻下單! 同文也跟大家分享近期蝦皮購物紀錄、好用推薦、蝦皮分潤計畫的聯盟行銷!
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
這篇文章將介紹工程師使用版控和git的相關知識和技能,包括版本控制的意義和git的基本指令,以及開發流程和webhook的概念。
Thumbnail
這篇文章將介紹工程師使用版控和git的相關知識和技能,包括版本控制的意義和git的基本指令,以及開發流程和webhook的概念。
Thumbnail
本篇文章介紹如何使用Git Bash進行版本控制操作,包括創建repository、查看狀態、歷程以及加入暫存和提交暫存等操作。透過基本的Git指令,您可以更深入地瞭解Git工具的使用方法。
Thumbnail
本篇文章介紹如何使用Git Bash進行版本控制操作,包括創建repository、查看狀態、歷程以及加入暫存和提交暫存等操作。透過基本的Git指令,您可以更深入地瞭解Git工具的使用方法。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
本文將介紹Gitlab與GitHub的差異,以及在本地環境部署Gitlab的流程與實作。文章內容包括版本管理系統的選擇,Gitlab的基本功能,以及使用Docker進行部署的詳細步驟。
Thumbnail
本文將介紹Gitlab與GitHub的差異,以及在本地環境部署Gitlab的流程與實作。文章內容包括版本管理系統的選擇,Gitlab的基本功能,以及使用Docker進行部署的詳細步驟。
Thumbnail
列出一套完整的程式 程式設計有許多種方法,不過通常會先列出清單的再逐一執行,這樣會加快程式設計的速度。設計通常會採取順推的辦法。所以順推的程式設計方式就是經歷觀念溝通、系統分析、資料統合、權限管理、頻率與時間、後台管理、畫面設計等等階段後,將框架設計完了以後,先列出一套完整的程式,將所有使用者都確
Thumbnail
列出一套完整的程式 程式設計有許多種方法,不過通常會先列出清單的再逐一執行,這樣會加快程式設計的速度。設計通常會採取順推的辦法。所以順推的程式設計方式就是經歷觀念溝通、系統分析、資料統合、權限管理、頻率與時間、後台管理、畫面設計等等階段後,將框架設計完了以後,先列出一套完整的程式,將所有使用者都確
Thumbnail
是的,身為前端工程師的基本功!還是需要時不時拿出來打磨一番! 很多大公司的切版與前端是分開的,但不能因為碰不到就不去理解,假如要系統性的調整樣式,那麼你就一定要懂基礎,就好像你要調整微前端的架構,總不能連包板工具的設定都不會吧! 回到正題,這系列文章每個禮拜三都會更新一題CSS Battle的題
Thumbnail
是的,身為前端工程師的基本功!還是需要時不時拿出來打磨一番! 很多大公司的切版與前端是分開的,但不能因為碰不到就不去理解,假如要系統性的調整樣式,那麼你就一定要懂基礎,就好像你要調整微前端的架構,總不能連包板工具的設定都不會吧! 回到正題,這系列文章每個禮拜三都會更新一題CSS Battle的題
Thumbnail
是的,身為前端工程師的基本功!還是需要時不時拿出來打磨一番! 很多大公司的切版與前端是分開的,但不能因為碰不到就不去理解,假如要系統性的調整樣式,那麼你就一定要懂基礎,就好像你要調整微前端的架構,總不能連包板工具的設定都不會吧! 回到正題,這系列文章每個禮拜三都會更新一題CSS Battle的題
Thumbnail
是的,身為前端工程師的基本功!還是需要時不時拿出來打磨一番! 很多大公司的切版與前端是分開的,但不能因為碰不到就不去理解,假如要系統性的調整樣式,那麼你就一定要懂基礎,就好像你要調整微前端的架構,總不能連包板工具的設定都不會吧! 回到正題,這系列文章每個禮拜三都會更新一題CSS Battle的題
Thumbnail
是的,身為前端工程師的基本功! 還是需要時不時拿出來打磨一番,這系列文章每個禮拜三都會更新一題CSS Battle的題目,歡迎與我交流喔!
Thumbnail
是的,身為前端工程師的基本功! 還是需要時不時拿出來打磨一番,這系列文章每個禮拜三都會更新一題CSS Battle的題目,歡迎與我交流喔!
Thumbnail
是的,身為前端工程師的基本功!還是需要時不時拿出來打磨一番! 這系列文章每個禮拜三都會更新一題CSS Battle的題目與解法
Thumbnail
是的,身為前端工程師的基本功!還是需要時不時拿出來打磨一番! 這系列文章每個禮拜三都會更新一題CSS Battle的題目與解法
Thumbnail
此篇教學 : 使用GitHub架設免費的部落格網站,輕鬆擁有自己的Blog雛型,記錄生活點滴。
Thumbnail
此篇教學 : 使用GitHub架設免費的部落格網站,輕鬆擁有自己的Blog雛型,記錄生活點滴。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News