新手村導讀 - 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
2會員
20內容數
test
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
林柏宇的沙龍 的其他內容
網頁回應碼是指當網頁伺服器處理完一個請求後所回傳的狀態碼。這篇文章介紹了網頁回應碼的分類,包括1XX、2XX、3XX、4XX和5XX狀態碼,並解釋了各種狀態碼的意義和常見原因。
在這篇文章中,我們將介紹工作與以前念書時期在開發流程上的差異,並深入瞭解CI/CD、Travis CI以及加解密的應用。 CI/CD是自動化的軟體開發實踐,而加解密則是保護機密資料安全的重要技術。
介紹工作後幾個常見的小問題,包括寫 Log 的好習慣、本地印出錯誤或過程、PHPCS 工具、變數儲存於設定檔、避免魔術數字、程式碼靜態分析與動態分析。
這篇文章介紹了面試時以及開始工作後可能會遇到的問題,包括物件導向OOP、SOLID 設計原則、測試方式,以及 Cookie、Session 與 Cache 的相似處與不同處。提供了豐富的相關資訊。
網頁回應碼是指當網頁伺服器處理完一個請求後所回傳的狀態碼。這篇文章介紹了網頁回應碼的分類,包括1XX、2XX、3XX、4XX和5XX狀態碼,並解釋了各種狀態碼的意義和常見原因。
在這篇文章中,我們將介紹工作與以前念書時期在開發流程上的差異,並深入瞭解CI/CD、Travis CI以及加解密的應用。 CI/CD是自動化的軟體開發實踐,而加解密則是保護機密資料安全的重要技術。
介紹工作後幾個常見的小問題,包括寫 Log 的好習慣、本地印出錯誤或過程、PHPCS 工具、變數儲存於設定檔、避免魔術數字、程式碼靜態分析與動態分析。
這篇文章介紹了面試時以及開始工作後可能會遇到的問題,包括物件導向OOP、SOLID 設計原則、測試方式,以及 Cookie、Session 與 Cache 的相似處與不同處。提供了豐富的相關資訊。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
剛進入股票市場的投資新手, 必定要經歷排山倒水而來的各種股票相關知識, ex:價值投資(基本面分析/總體經濟....), 技術分析(MACD,KD,RSI....), 學習到相關知識後 經過幾張K棒圖的回測,迫不及待把現金投入市場...... 不知大家有沒有玩過RPG(角色冒險)遊戲, 等級LV.
小孩出生後面臨黃疸、發炎指數過高等問題,除了常感到焦慮,還需要做許多決定。可能養育孩子就是一個漫長的旅程,從依附到放手到獨立。
Thumbnail
空投事先準備 在過去這段時間,我有做過一些空投的任務,而大部分的空投都必須會有一些共通的條件需要完成,例如追蹤且加入社群、鏈上交互數據、轉發特定文章等等, 因此如果將以下幾項基本社群帳號準備好,對接下來開始空投交互任務將會事半功倍: 錢包: 錢包是空投項目用以判斷在生態項目活躍程度的一項重要工具
Thumbnail
空投是甚麼? 空投(Airdrop)是一種加密貨幣生態用以分發數位資產或代幣的方法。這種方法是將數位資產免費分發給特定的目標群體,例如持有特定代幣的人、社群成員、或是在生態或使用產品以達到特定條件下的用戶。空投通常是項目方為了促進社群參與、擴大知名度、增加代幣分發的方式。這可能有助於建立項目的社群
Thumbnail
如果要開始投資加密貨幣,最常見的方法是先將手上的法幣轉換成加密貨幣後,再以穩定幣到交易所或是鏈上defi協議去交易想投資的幣種,如BTC、ETH等等。 但沒接觸過加密貨幣的人會想問,穩定幣又是甚麼呢? 穩定幣(Stablecoin)是一種加密貨幣,其價值相對穩定或固定在某個特定的價值,通常是
Thumbnail
其實本來想說閱讀器挑選有一堆人做了,應該不需要我特別來寫,但是發現大家依然有這個問題,然後新的閱讀器也多了很多加上彩機也加入混戰,似乎還是有很多人沒有搞清楚該怎麼挑選,因而認為閱讀器很雞肋或是買錯。所以我來寫一篇我認為挑選閱讀器應該要先做的幾樣功課和先搞清楚的地方!
Thumbnail
在興致勃勃的想養狗情緒下,約好了一起休假三天準備帶小狗回家 剛好遇到周末假期,星期六的收容所人潮滿滿 不是第一次進去的我,仍然訝異裡面的狗狗數量永遠領養不完 甚至很多品種狗也常常因為生病或是年老被棄養送至收容所 一開始就害怕幼犬愛咬東西的我們決定領養一隻成犬 避免回家打開門家具被咬得亂七八糟以為走錯
Thumbnail
好不容易稍微弄懂了外匯運作的原理,手上也有一點資金,是時候該入場驗證一下自己學到的東西了,欸等等,天啊上網一查,外匯平台成千上百,平常吃飯就已經選擇困難了,這麼多的平台,到底該選哪一家啊! 黑平台的四大特點 畢竟投入的都是自己辛苦上班的血汗錢,千萬要注意有以下四個特點的黑平台。 無法正常出金
Thumbnail
本期導讀的方格子創作者,是在方格子書寫多年,絕對可以直接獲頒VVIP格友勳章的「村長」。 在方格子數以萬計的創作者中,村長屬於筆耕不輟、無懼失敗的熱血份子。從默默發表,到如今有一批小小的粉絲群,他一再以行動證明,創作應當是屬於每個人的事。即使零基礎,只要有心練習,人人都能愛上創作。
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
剛進入股票市場的投資新手, 必定要經歷排山倒水而來的各種股票相關知識, ex:價值投資(基本面分析/總體經濟....), 技術分析(MACD,KD,RSI....), 學習到相關知識後 經過幾張K棒圖的回測,迫不及待把現金投入市場...... 不知大家有沒有玩過RPG(角色冒險)遊戲, 等級LV.
小孩出生後面臨黃疸、發炎指數過高等問題,除了常感到焦慮,還需要做許多決定。可能養育孩子就是一個漫長的旅程,從依附到放手到獨立。
Thumbnail
空投事先準備 在過去這段時間,我有做過一些空投的任務,而大部分的空投都必須會有一些共通的條件需要完成,例如追蹤且加入社群、鏈上交互數據、轉發特定文章等等, 因此如果將以下幾項基本社群帳號準備好,對接下來開始空投交互任務將會事半功倍: 錢包: 錢包是空投項目用以判斷在生態項目活躍程度的一項重要工具
Thumbnail
空投是甚麼? 空投(Airdrop)是一種加密貨幣生態用以分發數位資產或代幣的方法。這種方法是將數位資產免費分發給特定的目標群體,例如持有特定代幣的人、社群成員、或是在生態或使用產品以達到特定條件下的用戶。空投通常是項目方為了促進社群參與、擴大知名度、增加代幣分發的方式。這可能有助於建立項目的社群
Thumbnail
如果要開始投資加密貨幣,最常見的方法是先將手上的法幣轉換成加密貨幣後,再以穩定幣到交易所或是鏈上defi協議去交易想投資的幣種,如BTC、ETH等等。 但沒接觸過加密貨幣的人會想問,穩定幣又是甚麼呢? 穩定幣(Stablecoin)是一種加密貨幣,其價值相對穩定或固定在某個特定的價值,通常是
Thumbnail
其實本來想說閱讀器挑選有一堆人做了,應該不需要我特別來寫,但是發現大家依然有這個問題,然後新的閱讀器也多了很多加上彩機也加入混戰,似乎還是有很多人沒有搞清楚該怎麼挑選,因而認為閱讀器很雞肋或是買錯。所以我來寫一篇我認為挑選閱讀器應該要先做的幾樣功課和先搞清楚的地方!
Thumbnail
在興致勃勃的想養狗情緒下,約好了一起休假三天準備帶小狗回家 剛好遇到周末假期,星期六的收容所人潮滿滿 不是第一次進去的我,仍然訝異裡面的狗狗數量永遠領養不完 甚至很多品種狗也常常因為生病或是年老被棄養送至收容所 一開始就害怕幼犬愛咬東西的我們決定領養一隻成犬 避免回家打開門家具被咬得亂七八糟以為走錯
Thumbnail
好不容易稍微弄懂了外匯運作的原理,手上也有一點資金,是時候該入場驗證一下自己學到的東西了,欸等等,天啊上網一查,外匯平台成千上百,平常吃飯就已經選擇困難了,這麼多的平台,到底該選哪一家啊! 黑平台的四大特點 畢竟投入的都是自己辛苦上班的血汗錢,千萬要注意有以下四個特點的黑平台。 無法正常出金
Thumbnail
本期導讀的方格子創作者,是在方格子書寫多年,絕對可以直接獲頒VVIP格友勳章的「村長」。 在方格子數以萬計的創作者中,村長屬於筆耕不輟、無懼失敗的熱血份子。從默默發表,到如今有一批小小的粉絲群,他一再以行動證明,創作應當是屬於每個人的事。即使零基礎,只要有心練習,人人都能愛上創作。