新手村導讀 - 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)
avatar-img
2會員
18內容數
test
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
林柏宇的沙龍 的其他內容
這篇文章將介紹工程師使用版控和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
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
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
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
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
編輯的基本功,是對文字的敏感度。