iT邦幫忙

2025 iThome 鐵人賽

DAY 25
1
Modern Web

30天一起搞懂Web觀念系列 第 25

[DAY25] Git 是什麼?

  • 分享至 

  • xImage
  •  

Git 是什麼?

Git 是一個分散式版本控制系統(Distributed Version Control System)。它是目前最受歡迎的版本控制工具,廣泛用於軟體開發專案的程式碼管理。


什麼是版本控制?

版本控制是一種記錄一個或多個檔案內容變化,以便之後查閱特定版本修訂情況的系統。

簡單來說,它可以幫助我們:

  • 追蹤檔案的變更歷史
  • 比較不同版本之間的差異
  • 恢復到先前的版本
  • 查看誰在何時修改了什麼內容

分散式 vs 集中式版本控制

集中式版本控制系統(如 SVN):

  • 所有版本資訊都存放在中央伺服器
  • 開發者需要連接到伺服器才能進行版本控制操作
  • 如果伺服器故障,整個專案歷史可能遺失

分散式版本控制系統(如 Git):

  • 每個開發者的本地都有完整的版本歷史
  • 可以在離線狀態下進行版本控制操作
  • 多個備份,降低資料遺失風險
  • 支援多種工作流程

Github、Gitlab是什麼?

  • GitHub 是一個基於 Git 的程式碼託管平台,提供了 Web 介面來管理 Git 儲存庫
  • GitLab 是另一個基於 Git 的 DevOps 平台,提供完整的軟體開發生命週期工具

Git常見指令與情境

分支操作

# 將檔案加入暫存區
git add <filename>
git add .  # 加入所有檔案

# 提交變更
git commit -m "message"

# 查看提交歷史
git log

# 查看檔案差異
git diff

遠端操作

# 查看遠端儲存庫
git remote -v

# 推送到遠端
git push origin <branch-name>
git push -u origin main  # 設定上游分支

# 從遠端拉取
git pull origin <branch-name> #下載並合併
git fetch  # 僅下載,不合併

合併衝突(同一檔案的兩個版本,裡面有不同的內容),解決方法

#1. 把衝突的檔案開啟,進行修正
#2. 把修改過的檔案加入暫存區
git add <resolved-file>
#3.再commit 
git commit

撤銷變更

# 撤銷工作目錄的變更
git checkout -- <filename>
git restore <filename>  # 新版本指令

# 撤銷暫存區的變更
git reset HEAD <filename>
git restore --staged <filename>

# 撤銷最近的提交
git reset --soft HEAD~1  # 保留變更在暫存區
git reset --hard HEAD~1  # 完全撤銷

參考資料

https://medium.com/@flyotlin/新手也能懂的git教學-c5dc0639dd9

https://miahsuwork.medium.com/第二週-git-進階使用-branch-merge-a571cc0a95de

https://zh.wikipedia.org/zh-tw/Git

https://ithelp.ithome.com.tw/m/articles/10241407


上一篇
[DAY24] 網頁的快取機制是什麼?
下一篇
[DAY26] Git flow是什麼?
系列文
30天一起搞懂Web觀念30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言