Git & GitHub¶
2024 IM1003 Programming Design TA Workshop 梁安哲 2024/11/28
Introduction¶
一個常見的 PD 作業流程圖¶

各種管理問題¶
- 如何維護第一到第七版程式?
- 如何檢視第一到第七版程式的變化?
- 如果電腦突然壞掉,怎麼拿回程式的備份?
- 如果很多人一起寫一份大作業,怎麼紀錄每個人更改了哪些部分?
- 如果很多人一起寫一份大作業,怎麼紀錄每個人更改的部分相容?
- 如果你的程式是一項賣錢的產品,如何自動把程式交貨到使用者手上?
...族繁不及備載
Preparation¶
下載課程資料¶
在 terminal 輸入 git clone https://github.com/namwoam/git-workshop.git
重置 repository¶
repository 是 git 管理程式碼的界線,可以想像成專案的單位
在 git-workshop 輸入 git reset --hard 28eea111f8e3b1e4d04e6aed5ecafa246690ab14
你的資料夾應該要長得像這樣

Git add & commit¶
指令們¶
git add <filename>或git add .會讓 git 追蹤該檔案的更動git commit -m <message>會讓 git 紀錄所有檔案的變動,此次變動會以 message 標記
File status 示意圖¶

Commit history 示意圖¶

新增檔案¶
新增一個 main.cpp
#include <iostream>
int main(){
std::cout << "Hello 超級貓貓男!" << std::endl;
return 0;
}
Git branch & merge¶
指令們¶
git branch <branch-name>新增一個名為 branch-name 的分支git checkout <branch-name>切換到 branch-name 的分支git merge <branch-name>把 branch-name 上面的改動合併到現在的分支上
Merge 示意圖¶

Dev branch¶
依序執行
git branch dev會提示已經有該分支,因為我已經建好了git checkout dev切換到dev分支git reset --hard d868cfd07ed06faead9e4057f5b684df987e8509把dev分支還原
修改檔案¶
繼續執行
3. 修改 main.cpp
#include <iostream>
int multiply(int a, int b)
{
return a * b;
}
int main()
{
std::cout << "Hello 超級貓貓男!" << std::endl;
std::cout << "5 * 6 = " << multiply(5, 6) << std::endl;
return 0;
}
git add main.cpp紀錄檔案更動git commit -m "add: add multiply function"提交更動
GitHub¶
下載 GitHub Desktop¶
開啟之後介面會長這樣

可以在左上角 Add->Clone Repository 裡選擇剛剛創建的 repository ,下載到電腦裡,然後用 VS Code 開啟。
常用指令¶
git pull把 GitHub 上的更動更新到自己的電腦裡git push把自己電腦裡的更動更新到 GitHub 上git push --force強制把自己電腦裡的更動更新到 GitHub 上git reset --hard把 repository 回復到上一個 commit 的狀態





