iT邦幫忙

2026 iThome 鐵人賽

DAY 26
1
佛心分享-IT 人自學之術

學過一點 React,卻被撈進 C#:新手用 AI 硬啃 MVC 企業專案的 3 個月實錄系列 第 26

Day 26|Git 不等於 GitHub:從 React 常用的 GitHub 到公司使用的 Azure DevOps

  • 分享至 

  • xImage
  •  

前面幾天都還在處理:

怎麼看懂 MVC
怎麼追 Controller / Service
怎麼下中斷點
怎麼看變數
怎麼處理 Error

程式總算開始比較看得懂了。

但進公司之後,我又遇到另一組很熟又很陌生的東西:

Git
GitHub
Azure DevOps

其實以前學 React 的時候,我就有用過 Git。

那時候大概知道:

寫完程式
↓
Commit
↓
Push
↓
GitHub

作品也會放到 GitHub Repository。

所以那時很容易把:

Git

和:

GitHub

混在一起。

甚至會有一種:

Git 就是把程式推到 GitHub 的東西吧?

的感覺。

結果進公司後:

Git 還是在用

但是原本熟悉的 GitHub 不見了。

換成:

Azure DevOps

蛤?

所以 Git 可以不用 GitHub?

那 GitHub 跟 Azure DevOps 到底是在做什麼?

這篇就先把這幾個東西分清楚。


先從以前 React 的流程開始

以前寫 React 練習專案時,可能會有一個專案:

my-react-app

在 VS Code 裡開發:

src
public
package.json
...

接著透過 Git 留下版本紀錄。

最後再把程式 Push 到 GitHub。

整個概念大概是:

VS Code
↓
React 專案
↓
Git
↓
GitHub

https://ithelp.ithome.com.tw/upload/images/20260813/20181499Y4hx7dveLs.png

因為 GitHub 一直跟 Git 一起出現,所以我以前會下意識覺得:

Git = GitHub

但其實兩個完全不是同一個東西!!


Git 到底是什麼?

Git 是:

Version Control System
版本控制系統

白話一點就是:

幫我們記錄程式碼每一次修改的版本。

假設今天寫了一個登入功能:

第一版
建立登入畫面

↓

第二版
串接登入 API

↓

第三版
加入錯誤提示

↓

第四版
修正登入 Bug

Git 可以把這些修改一筆一筆記錄下來。

所以不是:

login-final

login-final2

login-final-new

login-final-真的好了

login-final-拜託不要再改

而是有正式的:

版本紀錄

可以知道:

誰修改的
什麼時候修改的
修改了哪些內容
這次修改的目的

Git 可以幫我們做哪些事情?

最基本可以先記幾件。

1. 留下版本紀錄

例如:

建立會員查詢功能

之後又:

修正會員查詢條件

再之後:

新增部門名稱欄位

每一次都可以留下不同版本。


2. 比較前後修改

Git 可以看到:

原本

和:

現在

到底差在哪。

例如原本:

Name = user.Name

後來改成:

Name = user.Name,
DepartmentName = user.DepartmentName

Git 可以知道:

這裡新增了一行

這就是之後會一直看到的:

Diff

3. 多人一起開發

公司裡當然不可能只有一個人改程式。

可能同時:

A 工程師
改登入

B 工程師
改報表

C 工程師
改會員資料

所以 Git 還有:

Branch

讓大家可以在不同分支工作,再把修改整合回去。

Branch 後面會再慢慢講。


4. 找以前的修改

如果今天突然發現:

咦?

這個功能以前明明正常,
到底是哪一次開始壞掉的?

也可以透過 Git History 去找以前的版本。

所以 Git 本質上是在管理:

程式版本

不是在管理某一個網站。


那 GitHub 是什麼?

GitHub 則是一個:

Git Repository 託管與團隊協作平台

這句第一次看很硬。

可以先理解成:

Git 負責版本控制,GitHub 則可以把 Git Repository 放到網路上,讓自己或團隊一起使用。

所以以前 React 的情況可以畫成:

我的電腦

React 專案
↓
Git

↓

網路

↓

GitHub

GitHub 是:

程式放在遠端的地方之一

而不是:

Git 本身

Repository 又是什麼?

這時候會一直看到一個字:

Repository

簡稱:

Repo

可以先理解成:

一個被 Git 管理的專案,以及這個專案的版本歷史。

例如:

my-react-app

使用 Git 管理後,就可以是一個 Git Repository。

Repository 裡不只有:

現在的程式碼

還包含 Git 所管理的:

Commit
Branch
版本歷史

Local Repository 和 Remote Repository

Repository 又可以先分成兩個位置。

Local Repository
本機 Repository

就是:

在我的電腦

另外還有:

Remote Repository
遠端 Repository

就是:

放在遠端、讓團隊可以共同存取

例如:

我的電腦
Local Repository

↓

Push

↓

GitHub
Remote Repository

所以以前 React 專案 Push 到 GitHub,其實是在做:

把本機 Git Repository 的版本
送到遠端 Git Repository

這樣一想就清楚很多~~


Git 只能 Push 到 GitHub 嗎?

不是耶!

這也是我進公司之後才真的意識到的地方

Git 的 Remote Repository 可以放在很多地方!

常見例如:

GitHub

GitLab

Bitbucket

Azure DevOps

所以:

Git

不綁定某一個平台。

可以變成:

Git
↓
GitHub

也可以:

Git
↓
GitLab

也可以:

Git
↓
Bitbucket

也可以:

Git
↓
Azure DevOps

核心的 Git 還是 Git。

只是:

Remote Repository 放的位置不同

所以以前 React 為什麼常用 GitHub?

自己學 React、做作品集或練習專案時,GitHub 很常見。

例如我以前的流程比較接近:

VS Code
↓
React
↓
Git
↓
GitHub

GitHub 上可以看到:

Repository
Files
Commits
Branches
Pull Requests

也很適合拿來:

放練習作品
分享程式碼
做作品集
參與開源專案

所以剛開始學 Git 時,很容易第一次接觸的遠端平台就是 GitHub。

但這不代表:

公司也一定使用 GitHub

進公司後,我們用的是 Azure DevOps

進到公司後,我發現同樣還是在用:

Git

但 Remote Repository 不再放 GitHub。

而是:

Azure DevOps

所以我現在實際工作的結構比較像:

Visual Studio
↓
C# MVC 專案
↓
Git
↓
Azure DevOps

最重要的一件事就是:

以前工具鏈:

VS Code
↓
React
↓
Git
↓
GitHub

現在:

Visual Studio
↓
C# MVC
↓
Git
↓
Azure DevOps

前端框架換了、開發工具也從 VS Code 換成 Visual Studio

遠端平台也換了

但:

Git 沒有消失

Azure DevOps 又是什麼?

Azure DevOps 不只是放 Git Repository 的地方。

它是一套給軟體開發團隊使用的協作平台。

裡面會看到很多功能,例如:

Boards
Repos
Pipelines
Test Plans
Artifacts

目前先不用全部弄懂。

這篇只要先知道:

Azure DevOps
是一整套團隊開發平台

其中跟 Git 最直接相關的是:

Azure Repos

可以先理解成:

Azure DevOps
│
├─ Boards
├─ Repos      ← Git Repository 在這裡
├─ Pipelines
├─ Test Plans
└─ Artifacts

Day 27、Day 28 再慢慢進去看

https://ithelp.ithome.com.tw/upload/images/20260813/20181499uPE3ITj0n8.png


Azure Repos 跟 GitHub Repository 很像嗎?

如果只看:

存 Git Repository

這個功能,確實有相似的地方。

例如兩邊都可以看到:

程式碼

Commit

Branch

Pull Request

修改紀錄

所以以前已經用過 GitHub 的話,進 Azure Repos 後不至於完全陌生。

例如:

GitHub Repository

裡面會有:

Code
Commits
Branches
Pull Requests

Azure Repos 也有類似概念:

Files
Commits
Branches
Pull Requests

名稱可能稍微不一樣,但底層很多東西還是在操作:

Git

GitHub 和 Azure DevOps 差在哪?

這裡不用把兩個平台比成:

誰比較好

因為公司選工具有很多原因。

我現在比較會把它們理解成:

都是可以支援 Git 團隊協作的平台

但產品定位和整合方式不完全一樣

可以先這樣看:

比較 GitHub Azure DevOps
Git Repository 有,主要在 Azure Repos
Branch
Commit History
Pull Request
Code Review
工作追蹤 Issues / Projects 等 Azure Boards
CI/CD GitHub Actions Azure Pipelines
套件管理 GitHub Packages Azure Artifacts
常見使用情境 個人作品、開源、團隊開發都很多 企業團隊、Microsoft 生態系統中也很常看到

所以不能理解成:

GitHub
只能個人用

Azure DevOps
才是公司用

這樣不準確。

GitHub 也有很多企業使用。

Azure DevOps 也不是只有大型公司才能用。

真正的差別比較在:

團隊選擇哪一套平台
以及公司原本的開發流程怎麼設計

對我來說最大的差異不是 Git

這個我覺得很重要。

以前 React:

GitHub

現在公司:

Azure DevOps

一開始會以為:

我要重新學一套版本控制?

其實不是。

因為底層還是在用:

Git

所以:

Commit
Branch
Push
Pull
Merge

這些核心概念還是存在。

真正不同的是:

平台介面
團隊規則
權限
PR 流程
工作項目
Pipeline
Branch Policy

這些才是進公司後要重新適應的地方。


以前 GitHub 的經驗不是白學

所以以前 React 專案推 GitHub,其實已經有學到一些可以帶進公司的東西。

例如:

Repository 是什麼

Commit 是什麼

Push 是什麼

Branch 是什麼

Remote 是什麼

只是以前可能只是:

照教學操作

到了公司之後,開始真的需要理解:

為什麼要這樣做?

例如:

為什麼不能直接改 main?

為什麼要開自己的 Branch?

為什麼 Commit 完 Azure DevOps 還看不到?

為什麼 Push 之後還不能直接合併?

為什麼還要 Pull Request?

Reviewer 又是在看什麼?

這些後面才慢慢接起來。


Visual Studio 也可以操作 Git

以前用 VS Code 時,可能會直接打:

git add .
git commit -m "update"
git push

進公司改用 Visual Studio 後,很多 Git 操作可以直接從介面完成。

例如:

Git Changes
Branches
Commit
Push
Pull
Fetch

但這不是說:

Visual Studio 有自己的版本控制系統

底層操作的還是:

Git

只是 Visual Studio 幫我們做了一層操作介面。

所以:

Command Line Git

和:

Visual Studio Git

不是兩套不同 Git。

本質還是同一套 Git。


那現在整個關係可以怎麼畫?

以前 React:

VS Code
↓
React 專案
↓
Git
↓
Local Repository
↓
Push
↓
GitHub
Remote Repository

現在公司:

Visual Studio
↓
C# MVC 專案
↓
Git
↓
Local Repository
↓
Push
↓
Azure DevOps
Azure Repos
Remote Repository

所以最核心的一句就是:

平台換了
Git 沒有換

GitHub 和 Azure DevOps 不只是「放程式」

這兩個平台都不是單純的:

雲端硬碟

不是把:

整個專案資料夾拖上去

這麼簡單。

它們是建立在:

Git Repository

的概念上。

所以會知道:

哪些是 Commit

哪一支 Branch

這次改了哪些行

誰做了修改

兩個 Branch 差在哪

怎麼 Review

怎麼 Merge

這才是 Git 平台真正有價值的地方。


那為什麼公司選 Azure DevOps?

公司選擇開發平台可能跟很多事情有關:

既有系統

團隊流程

權限管理

Microsoft 技術環境

需求管理方式

CI/CD

公司既有工具

維運方式

所以不是:

因為 C# 就一定要 Azure DevOps

也不是:

React 就只能 GitHub

技術上沒有這種綁定!

React 一樣可以放 Azure DevOps

C# 一樣可以放 GitHub

只是我們以前練習 React 時使用 GitHub
現在公司的團隊流程使用 Azure DevOps而已~~


我現在會怎麼理解這三個東西?

最簡單就是:

Git
↓
版本控制系統
GitHub
↓
可以託管 Git Repository
也提供團隊協作功能的平台
Azure DevOps
↓
也可以管理 Git Repository
而且還整合工作管理、Pipeline 等企業開發功能

所以:

Git
≠
GitHub

Git
≠
Azure DevOps

GitHub
≠
Azure DevOps

但:

GitHub 和 Azure DevOps
都可以跟 Git 一起使用

這篇先記住什麼?

以前寫 React 時:

VS Code
↓
Git
↓
GitHub

進公司之後:

Visual Studio
↓
Git
↓
Azure DevOps

最重要的不是:

GitHub 被 Azure DevOps 取代了

而是:

Git 本來就可以搭配不同 Remote Repository 平台。

常見例如:

GitHub
GitLab
Bitbucket
Azure DevOps

而我們公司目前使用:

Azure DevOps

所以接下來要開始學的,就不是另一套版本控制。

而是:

同樣使用 Git

但是要開始理解公司的 Azure DevOps 工作流程。

現在整條線可以先畫成:

寫程式
↓
Git 管版本
↓
Local Repository
↓
Push
↓
Remote Repository

Remote Repository 以前是:

GitHub

現在則是:

Azure DevOps

而下一篇,就要真的打開 Azure DevOps。

看看公司裡一直講的:

Boards
Work Items
Sprint
Feature
Product Backlog Item
Task

到底是在管什麼。

以及為什麼還沒開始寫程式之前,我得先找到:

自己這次到底要做哪一張工作單?

下一篇:

第一次進 Azure DevOps:Boards、Work Items、Sprint 和工作項目到底怎麼看?


上一篇
Day 25|Visual Studio 報錯到底先看哪裡?Error List、Output 和 Exception 怎麼分?
下一篇
Day 27|第一次進 Azure DevOps:Boards、Work Items、Sprint 和工作項目到底怎麼看?
系列文
學過一點 React,卻被撈進 C#:新手用 AI 硬啃 MVC 企業專案的 3 個月實錄29
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言