新手村導讀 - 6: Git(2)

閱讀時間約 4 分鐘

事不宜遲,接續上次的內容,這次介紹基礎的指令吧!

git pull

最基礎的指令之一,用於將遠端伺服器的內容抓下來,更新本地的內容。

*因為是拉下來再更新,因此有可能需要解衝突。

*大部分情況下, git pull = git fetch + git merge

git push

最基礎的指令之一,用於本地的內容推上遠端伺服器去更新內容。如果你推的內容跟遠端的有衝突,會跑出 error 不讓你繼續進行下去,此時可以考慮 rebase 或是搭配 -f 指令去強推分支。然後, -f 指令請慎用,因為遠端的內容會直接被覆蓋要,而且無法復原!

*完整指令: git push origin 本地分支:遠端分支 (-f)

*刪除遠端分支: git push origin :遠端分支

git merge

最基礎的指令之一,用於合併分支內容。

git fetch

這個指令會把遠端的所有分支儲存在本地,但不會進行更新。可以搭配 source 參數去銜接本地與遠端的不同分支的內容。

*儲存特定分支: git fetch origin 遠端分支

*將(遠端)分支1拉下來後,銜接(本地)分支2: git fetch origin 分支1:分支2

git branch

這個指令可以處理跟分支有關的操作,例如查詢分支、刪除分支、新建立分支等等。

*查詢分支: git branch

*當前位置新建分支: git branch 新分支名稱

*在指定位置開分支: git branch 新分支名稱 HEAD~^2~git branch 新分支名稱 Hash值

*刪除分支(不能刪除目前自己所在的分支): git branch -D 分支名稱

*強制將分支指向特定位置: git branch -f 分支 分支或Hash值

git checkout

這個指令主要用來切換分支。 git checkout 分支名稱

git rebase & git cherry-pick

基本概念是,rebase 是將 Commit 點到別的分支上,而 cherry-pick 則是將別人的 Commit 點撿來目前所在的分支進行使用。

*將分支2搬家到分支1後面: git rebase 分支1 分支2

*撿點(會直接加在目前的位置後面): git cherry-pick (Hash1) (Hash2) …

git reset & git revert

這兩個指令都是退回 Commit 點的指令。

reset 會直接退回之前的 Commit 點,而 revert 則是將內容退回指定的 Commit 點內容,但是會有新的 Commit 點

另外一個重點是,revert 只會在你目前所在的分支(以及原始拉出來的分支)生效,在其他分支上即使 hash 值相同,git revert 的效果仍不會顯現!

舉例來說:

現在 A 分支(含有 A0 這個點)合併進入 B、C 兩個分支,那麼 B、C 上面都會有 A0 這個點(同樣內容不同 Hash 值)。當我今天想在這兩個分支上都退掉 A0 時,

  1. 先從 B 拉出新的分支 B1, git revert ,併回 B 分支,這樣 B 就會有 revert 的效果。
  2. 但是要注意的事情是,現在即使將 B1 併回 C 分支也不會有效果!
  3. 因此我們需要額外從 C 拉出 C1 分支後再做一遍,最終併回 C 分支,這樣才能完美完成退版~

git tag

這個指令是在特定 Commit 設立標籤,功能簡單,指令也很簡單 git tag 標籤名稱 Hash值 ,不過實作上依舊蠻常用到的。

對於開發者本身的意義:

  1. 代表重大更新里程碑
  2. 打完標籤後就無法再對這個 Commit 點進行 git 相關的操作,可以避免有人亂動內容。

對於使用者來說:

  1. 可以快速看到自己需要哪個版本的內容
  2. 在程式內引用時可以直接指定版號,避免某天突然套件更新導致程式出現致命性錯誤。

git describe

這個指令跟標籤也有關係,主要是用於尋找特定 Commit點往前最近的標籤,畢竟實作上有時已經先鎖定需要哪部分修改內容了,但是反而找不太到版號,此時這個指令就可以派上用場啦~

Git 進度條終於跑完 2/3 了,當我開始整理筆記後才發現之前真的記錄了很多 OAO

參考資料:

  1. 經驗甘苦談
  2. Day24|【Git】認識 git tag 標籤常用指令、標籤與分支的差異 - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天 (ithome.com.tw)
2會員
17內容數
test
留言0
查看全部
發表第一個留言支持創作者!
林柏宇的沙龍 的其他內容
這篇文章將介紹工程師使用版控和git的相關知識和技能,包括版本控制的意義和git的基本指令,以及開發流程和webhook的概念。
網頁回應碼是指當網頁伺服器處理完一個請求後所回傳的狀態碼。這篇文章介紹了網頁回應碼的分類,包括1XX、2XX、3XX、4XX和5XX狀態碼,並解釋了各種狀態碼的意義和常見原因。
在這篇文章中,我們將介紹工作與以前念書時期在開發流程上的差異,並深入瞭解CI/CD、Travis CI以及加解密的應用。 CI/CD是自動化的軟體開發實踐,而加解密則是保護機密資料安全的重要技術。
介紹工作後幾個常見的小問題,包括寫 Log 的好習慣、本地印出錯誤或過程、PHPCS 工具、變數儲存於設定檔、避免魔術數字、程式碼靜態分析與動態分析。
這篇文章介紹了面試時以及開始工作後可能會遇到的問題,包括物件導向OOP、SOLID 設計原則、測試方式,以及 Cookie、Session 與 Cache 的相似處與不同處。提供了豐富的相關資訊。
這篇文章將介紹工程師使用版控和git的相關知識和技能,包括版本控制的意義和git的基本指令,以及開發流程和webhook的概念。
網頁回應碼是指當網頁伺服器處理完一個請求後所回傳的狀態碼。這篇文章介紹了網頁回應碼的分類,包括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
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
這篇文章將介紹工程師使用版控和git的相關知識和技能,包括版本控制的意義和git的基本指令,以及開發流程和webhook的概念。
更新專案的指令有: 01 `git fetch` 來對專案做「更新 Update」。 02 `git push` 來分享你對專案的「變更 Change」[3]。 03 `git remote` 來管理遠端的儲存庫。 有趣的是,fetch 這個字源於古英語的"fetan", 表示拿來,取回來的意思。
分支與合併 Branching and Merging[1] 。 這裡提供一個很有趣的說法, 就是理解「分支 Branching」最好的方式, 就是把它理解成「上下文 Context」。
今天學習Git的第二步: 基礎快照 Basic Snapshotting [1] 。 之前提到,快照在Git的意思, 是Git 會紀錄 Git 儲存庫裡面每一個檔案在提交時刻的狀態。 可以說,Git 本身就是製作與組織這些「快照」的最強工具。 透過使用快照,你可以記錄你
今天學習Git 的第一步: 取得與建立項目 Getting and Creating Projects [1]。 之前提到「儲存庫 Repository」就是儲存所有「檔案 File」的地方。 在Git 的邏輯裡,儲存庫是要儲存所有的「快照 Snapshots」。 什麼是快照
今天學習Git Command-Line Syntax [1] 。 Git command的 convention 為: `git [switches] <command> [<args>]` 而每一個部分的基本解釋是: - `git` 是 Git 命令的開頭 - `[s
Windows : 下載Git (git-scm.com)並按照指示安裝。 安裝完成後,你可以通過運行以下命令來確認安裝是否成功: git --version 初次設定GIT 接下來就是按照初次設定git,會需要配置你的用戶名和電子郵件地址,這些信息將被記錄在您提交的每個變更中。 git
1. Outline Takeaway Setting up Git and verifying installation Configuring your Git username and email Initializing a new Git repository Stagin
Thumbnail
編輯的基本功,是對文字的敏感度。
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
這篇文章將介紹工程師使用版控和git的相關知識和技能,包括版本控制的意義和git的基本指令,以及開發流程和webhook的概念。
更新專案的指令有: 01 `git fetch` 來對專案做「更新 Update」。 02 `git push` 來分享你對專案的「變更 Change」[3]。 03 `git remote` 來管理遠端的儲存庫。 有趣的是,fetch 這個字源於古英語的"fetan", 表示拿來,取回來的意思。
分支與合併 Branching and Merging[1] 。 這裡提供一個很有趣的說法, 就是理解「分支 Branching」最好的方式, 就是把它理解成「上下文 Context」。
今天學習Git的第二步: 基礎快照 Basic Snapshotting [1] 。 之前提到,快照在Git的意思, 是Git 會紀錄 Git 儲存庫裡面每一個檔案在提交時刻的狀態。 可以說,Git 本身就是製作與組織這些「快照」的最強工具。 透過使用快照,你可以記錄你
今天學習Git 的第一步: 取得與建立項目 Getting and Creating Projects [1]。 之前提到「儲存庫 Repository」就是儲存所有「檔案 File」的地方。 在Git 的邏輯裡,儲存庫是要儲存所有的「快照 Snapshots」。 什麼是快照
今天學習Git Command-Line Syntax [1] 。 Git command的 convention 為: `git [switches] <command> [<args>]` 而每一個部分的基本解釋是: - `git` 是 Git 命令的開頭 - `[s
Windows : 下載Git (git-scm.com)並按照指示安裝。 安裝完成後,你可以通過運行以下命令來確認安裝是否成功: git --version 初次設定GIT 接下來就是按照初次設定git,會需要配置你的用戶名和電子郵件地址,這些信息將被記錄在您提交的每個變更中。 git
1. Outline Takeaway Setting up Git and verifying installation Configuring your Git username and email Initializing a new Git repository Stagin
Thumbnail
編輯的基本功,是對文字的敏感度。