iT邦幫忙

2025 iThome 鐵人賽

DAY 16
0
Security

從0基礎開始起飛,一起一步步踏入資安系列 第 16

[ Day 16 ] 想學Git嗎? 來這教你 ( Linux指令 - git 基礎篇)

  • 分享至 

  • xImage
  •  

在軟體開發與資安學習過程中,版本控制 (Version Control)是非常重要的技能,而Git就是目前世界上最流行的分散式版本控制系統。

它能讓你管理程式碼的修改、追蹤專案歷史,並且方便多人協作。

基本操作

建立專案

git init

  • 在目前的資料夾建立一個新的 Git 儲存庫,會生成一個隱藏資料夾 .git

複製專案

git clone

git clone https://github.com/user/repo.git
  • 從遠端(例如 GitHub)複製一份專案到本地。這樣你就能直接編輯,並提交修改。

查看狀態

git status

  • 顯示目前的檔案狀態,例如:
    • 哪些檔案被修改過但尚未提交
    • 哪些檔案已經新增到暫存區
    • 目前所在的分支 (branch)

新增檔案到暫存區

git add

git add file.txt
  • 把 file.txt 加到「暫存區 (staging area)」,準備提交。
  • ( 下方會解釋更詳細概念 )

建立版本快照

git commit

git commit -m "(可任意輸入,對於檔案的簡短內容說明)"
  • 將剛剛用 git add 加入暫存區的檔案正式存檔,並加入簡短內容說明

查看歷史紀錄

git log

  • 顯示提交紀錄,包括:
    • 提交 ID (commit hash)
    • 作者
    • 提交時間
    • 訊息說明 ( git commit -m “[text]” 中,作者在 [ text ] 中打上的內容 )
  • 有些CTF題的flag就是藏在作者名稱或是訊息說明裡

建立一個新的git時 ( 綜合以上概念 )

  1. 先用 git init 建立一個新的 Git 儲存庫後
  2. git add [file] 會將想放入此新的Git 儲存庫的檔案加入暫存區
  3. 使用git commit -m "[text]" 來新增對於你放入暫存區的檔案的說明
  4. 接著再用 git log 就能看到在 Git 儲存庫裡,你放入的每個檔案和他們各自的說明、作者、時間

Git Remote、Pull、Push

什麼是 remote?

你可以把 remote 想像成「雲端上的資料夾」(例如 GitHub、GitLab、Bitbucket)。
而你電腦裡的 Git 專案就是「本地的資料夾」。

  • remote:放在雲端(像 Google Drive 的共享資料夾)
  • local:放在你電腦裡

通常,第一個遠端會被叫做 origin。例如你用 git clone 抓來的專案。

看看你有哪些 remote:

git remote -v

可能會出現:

origin  https://github.com/yourname/myproject.git (fetch)
origin  https://github.com/yourname/myproject.git (push)

意思就是:

  • 這個專案的「遠端資料夾」叫 origin
  • 它的網址是 https://github.com/yourname/myproject.git

push:把東西「推」上去

你在電腦裡修改程式,Git 會幫你記錄成一個「快照」(snapshot,就像存檔)。
如果只存到電腦裡,別人看不到。
要讓大家看到,就要 push 到雲端。

指令:

git push origin main

意思是:
把「我電腦裡 main 分支的最新存檔」 → 推到遠端 origin 的 main 分支。

pull:把東西「拉」下來

反過來,如果同學在雲端改了程式,而你電腦還是舊的版本,你就需要 拉下來
這個動作就是 pull

指令:

git pull origin main

意思是:
去 origin 看看 main 分支有沒有更新 → 拉下來 → 自動和我電腦的版本合併。

最常見流程(自己寫程式 + 和別人合作)

  1. git pull,確保電腦是最新的版本
  2. 修改程式、git addgit commit(存檔)
  3. 最後 git push,把成果送上去

明天會再教更進階的用法,有興趣可以追蹤一下哦
https://ithelp.ithome.com.tw/upload/images/20250916/20177897ZPzcG1YCZt.jpg


上一篇
[ Day 15 ] 分析執行檔 ? 二進位檔 ? Linux 指令 - strings
下一篇
[ Day 17 ] Git進階篇(1) ( Linux指令 - git )
系列文
從0基礎開始起飛,一起一步步踏入資安23
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言