Skip to content

[Git] Git 版本控制基本指令筆記(上)

我認為,工程師撰寫程式的最終目的是為了讓這個世界更便利。不論是什麼樣的產品,程式碼上的改動都是在所難免;可能是程式出了 BUG、可能使用者需要有個更簡潔的按鈕、甚至可能只是工程師私心希望能夠提升程式碼可讀性。

而每一次程式碼的異動,都必須背負著一定程度的改壞程式的風險。為了規避這種風險,我們可能會想到要事先將程式『備份』。然而,隨著專案規模的越來越大、或是與他人協力共同開發,單純地替程式碼備份變成了一件容易讓人手忙腳亂出錯的任務。

於是,『版本控制』(version control)的需求就這樣誕生了。(相關的發展歷史與工具可以參考 Wiki

我今天主要紀錄的,則是當今可說是最主流的 git 以及 GitHub。希望這篇筆記能寫得夠清楚。


git 和 GitHub 究竟是什麼呢?

git 是一個分散式的版本控制軟體,它最早的開發者同時也就是 Linux 作業系統的開發者 Linus Torvalds,可謂是大有來頭。如今 git 已經可以很輕易地在 Linux、Mac OS、Windows 等作業系統的命令列模式中執行,替我們各種本地專案進行版本控制。

GitHub 是什麼?剛開始學習的時候,很多人會以為 git 就是 GitHubGitHub 就是 git,我不只一次地被剛學習版本控制的朋友問道:「欸,你會不會使用 GitHub 指令啊?」—— 然而實際上兩者是截然不同的。

GitHub 是可以通過 git 來進行版本控制的原始碼託管平台,也是世界上最大的程式碼託管網站以及開源社群

git 是工具,GitHub 是個線上託管的平台。但兩者一起使用是相當方便的。以下就來紀錄該如何使用吧。


使用 git 和 GitHub 進行版本控制

以下按照操作流程一步步紀錄:

  • 安裝 git
  • 註冊 GitHub 帳號
  • 設定 GitHub 金鑰
  • 建立第一個專案
  • 使用 git 指令將本地端倉庫與遠端倉庫同步(git add、git commit、git push

其實就算是這樣,在使用 git 上還是有許多沒能紀錄到的部分,不過本篇僅僅只是紀錄該如何簡單地使用 git 進行版本控制,這樣應該算多多少少都有提及到了。


安裝 git

Linux (Debian/Ubuntu)

你可以在終端機中,使用:

sudo apt install git


來進行安裝。


Linux (Fedora)

yum install git-core


Mac OS

brew install git


Windows

Windows 系統大概是相對比較麻煩的了。

  1. 前往官網:https://git-scm.com/
  2. 點擊下載按鈕
  3. 雙擊啟動安裝檔完成安裝
  4. 可以在開始列打開 CMD 或 PowerShell
  5. 可以在命令列使用 git 工具


無論使用哪種作業系統,安裝完畢後,我們在命令列模式中,輸入以下指令來設定帳號跟電子郵件:

git config --global user.name "<user_name>"
git config --global user.email "<user_email>"



註冊 GitHub 帳號

為了要能夠在雲端備份、託管自己的專案(程式碼),我們必須在 GitHub 有自己的帳號。別擔心,建立倉庫等等都是免費的!

GitHub 的網址:https://github.com/



設定 GitHub 金鑰

在我們使用一些 GitHub 的服務時,比方說 git pull 指令,我們為了讓 GitHub 知道我們所使用的裝置確實擁有 GitHub 的帳號權限,我們需要設定 SSH 的金鑰來做認證,私鑰放在本地端,公鑰放在 GitHub 上。

詳細的操作可以參考我以前寫過的這篇文章:[GitHub] 設定 SSH 金鑰步驟紀錄

文字簡化版步驟:

  • 在終端機中使用 ssh-keygen 產生公鑰與私鑰
  • 私鑰放在使用者家目錄底下的 .ssh/ 資料夾中
  • 來到 GitHub 網頁 > 右上角個人圖示開啟選單 > Settings > 左側 SSH and GPG keys > New SSH key > 輸入自定義的 Title 然後在 Key 欄位貼上公鑰(一字不漏)



建立第一個專案

來到 GitHub 網頁後,點擊右上角的 + 符號,選擇 New repository 建立一個新的遠端倉庫。


接著你需要替這個遠端倉庫、也就是你接下來所要開發的專案進行命名與簡單的描述,甚至可以選擇這個倉庫是公開或私人。公開的情況下網路上的所有用戶都可以看見你的倉庫,私人的話你可以設定有誰有權限可以瀏覽。


設定好後,按下 Create repository,現在遠端倉庫已經建立成功了,接著你會看到以下畫面:

這個畫面上分別列出了:新增倉庫推上一個已經存在的倉庫從其他倉庫匯入程式碼等三個選項。

下面我們從本機端建立新的倉庫,並與此遠端倉庫進行連結。



使用 git 指令將本地端倉庫與遠端倉庫同步(git add、git commit、git push

基本上就像 GitHub 上列出來的一樣:

…or create a new repository on the command line
echo "# clay-test" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin [email protected]:ccs96307/clay-test.git
git push -u origin main


  • git init: 初始化 git 版本控制,會在當前資料夾內建立 .git 隱藏資料夾
  • git add <file_name>: 開始追蹤特定檔案
  • git commit -m "<message>": 將追蹤檔案推入本地保存庫(倉庫)
  • git branch <branch_name>: 建立分支,在一開始 GitHub 會建議我們建立名為 main 的主要分支
  • git remote add origin [email protected]:<username>/<repository_name>.git: 將當前本地端 git 版本控制與遠端倉庫連接在一起
  • git push -u origin main: 將本地端倉庫所保存的文件或程式碼推上 GitHub 遠端倉庫

很單純,現在我實際操作一次。

首先我在我的專案內新增了一個名為 clay-test 的資料夾,在裡頭放入了 hello.py 這份程式。接著我按照以下步驟開始使用 git 進行版本控制。

git init
git add *
git commit -m "It is a test"
git branch -M main
git remote add origin [email protected]:ccs96307/clay-test.git
git push -u origin main


Output:

Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 220 bytes | 220.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To github.com:ccs96307/clay-test.git
 * [new branch]      main -> main
Branch 'main' set up to track remote branch 'main' from 'origin'.


到這一步我們的程式碼已經順利在遠端倉庫中保存了。我們現在重新整理 GitHub 網頁畫面,會看到遠端倉庫的畫面改變了:

到目前為止,我們完成了使用 git 指令在本地端替專案進行版本控制的檔案追蹤、也將程式碼推上了遠端倉庫(再也不用擔心遺失了!),到這邊已經基本上完成了 git 最基本的使用了。

接下來 git 的一些好用、常用的其他指令,會在下篇文章中繼續紀錄。


References


Read More

Tags:

Leave a Reply