Git 入門:Git 怎麼用? 初始化倉庫,開始版本控制!【你的程式時光機】

更新 發佈閱讀 8 分鐘

在上一篇文章中,我們已經成功安裝好 Git 並教大家如何挑選適合自己的操作介面,在這篇文章中,將會正式開始版本控制。 (以下範例皆使用 Git bash!)

如果你還不知道 Git 是什麼,歡迎先去看看我的第一篇 Git 系列文章:

Git 入門:版本控制與 Git 是什麼?【用 Git 打造你的程式時光機 & 平行宇宙】

配置使用者資訊

安裝好 Git 後,首先要做的就是利用 git config 指令來設置使用者資訊。

使用者資訊會被寫入版本控制資料(就是後面會提到的 commit)中,commit 產生後,裡面紀錄的作者資訊就無法修改,因此要確認是否正確。

為整個系統配置(只需一次),使用 --global

git config --global user.name "Your Name"
git config --global user.email "Your Email"

--global 參數代表為整個系統配置,因此只要設定一次就好。如果不小心打錯資訊,只需要重新輸入一次正確的指定,Git 會自動覆蓋掉前面的值~


版本控制

配置好使用者資訊後,先用 cd filefolder 指令進到要管理的資料夾,我以桌面的 NewProject 資料夾為例,輸入 cd ~/Desktop/NewProject (實際請依照你的系統調整!)

接下來,我們就正式進到 Git 的核心操作!!!


初始化儲存庫

要在資料夾內使用 git,第一步就是要初始化 git 儲存庫(repository),讓 git 可以管理這個資料夾:

git init

執行後,git 會在這個資料夾底下建立一個 .git 的隱藏資料夾,所有的版本歷史、變更紀錄等相關重要資料都會存在這裡。只要看到 git bash 出現:

Initialized empty Git repository in ...

git init

git init

代表這個資料夾成為一個 Git 的儲存庫了~在資料夾後方會看到一個 (main),這是我們初始化 git 倉庫時,系統自動建立的第一個分支(分支概念以後也會講到)。預設名稱通常會是 main,如果你的 git 是舊版,可能會叫做 master。

git 分支名稱會出現在資料夾後方

git 分支名稱會出現在資料夾後方


查看檔案狀態

雖然目前我們的資料夾是空的、才剛進行初始化,但我們可以先用指令查看 git 儲存庫的狀態。

git status

當你執行指令會出現以下畫面:

raw-image

我們可以看出幾個資訊:

  • 在 main 分支上
  • 還沒有 commit
  • 沒東西可以 commit

現在我們在資料夾內新增一個檔案(我用 newfile.txt 為例),再執行一次 git status

raw-image

可以看到畫面多了一段:

  • untracked files: ...

這段內容代表的是,git 偵測到了你的資料夾內多了一個檔案(紅色標註的 newfile.txt),而這個檔案尚未被 git 追蹤

這時候我們可以先有的一個觀念「Git 的三個核心區域」

  1. 工作目錄 Working Directory:編輯檔案的地方,所有修改、新增、刪除都發生在這裡
  2. 暫存區 Staging area:存放「準備被記錄的檔案」的地方
  3. 儲存庫 Repository:存放「被 Git 保存為正式歷史紀錄的版本」的地方

添加變更到暫存區: git add

當我們初始化一個 git 儲存庫,git 並不會主動幫我們追蹤檔案,所以要先用 git add filename 明確的告訴 git 你想管理哪些檔案。

以我的 newfile.txt 為例:

git add newfile.txt

這個指令的意思是:

把指定檔案「加入暫存區(staging area)」

接著用 git status 看一次狀態:

raw-image
  • changes to be committed...

這裡可以看到系統顯示多了一個新檔案(綠色標註文字),這個新檔案是 newfile.txt,這代表 Git 已經幫我們追蹤、並將這個檔案放到暫存區了。

如果我們有很多要添加到暫存區的內容,可以使用:

git add .

這個指令代表:

將工作目錄下,所有的變動(新增、修改、刪除) 全部都加到暫存區

這個指令很方便,但是如果有些特殊的檔案不希望被加進去(例如 log、.env 等),我們會需要 .gitignore 檔案,.gitignore 用來排除不想受到 git 控管的檔案。

範例:

  1. 直接在資料夾中新增 ".gitignore",並將要忽略的檔案寫進去。
設定 .gitignore

設定 .gitignore

  1. 在專案資料夾內新增測試用的 test.log 與 secret.txt 檔案
資料夾內容

資料夾內容

  1. 查看 git status
執行 git status,此時 git 只會看到多了 .gitignore 檔案

執行 git status,此時 git 只會看到多了 .gitignore 檔案

  1. 執行 git add .
git add . 會忽略 .gitignore 紀錄的內容

git add . 會忽略 .gitignore 紀錄的內容

關於 .gitignore 其實有很多進階的篩選規則可以使用,沒辦法在這邊一一列出>< 這個階段是希望大家可以先有「並非所有檔案都要被記錄」的概念,避免在使用 git add . 時將密碼或是其他不相關的檔案一起加到暫存區。等熟悉基本操作後,未來會再寫一篇文章深入討論!!(希望我會)


保存檔案歷史節點: git commit

​使用 git add 只是把內容加到暫存區,要把暫存區的內容打包成一個版本(commit),就會用到下方這個指令~~

git commit -m "變更訊息"
git commit -m 的 m 是 message 的 m 哦! 這樣記應該比較不容易忘記!

這個指令會做幾件事:

1. 將暫存區的內容存成一個版本
2. 記錄作者(就是第一步設定的 user.name)
3. 留下一段說明文字 (commit message)
git commit

git commit

看到這樣畫面,代表這次的變更已經永久的保存到 git 的歷史了~

如果這時你在打一次 git status,會看到這樣的畫面:

git status

git status

這代表目前工作目錄儲存庫的內容是一樣的,沒有任何未保存的變更~

到這一步,我們已經成功地進行了專案的版本控制,在未來,我們將可以回到 commit 過的任何時間點!! 這也是為何標題被我稱作「程式時光機」的原因!!


總結

讓我們快速整理一下這篇文章的重點:

  1. 如果初次使用 git,記得用 git config 配置使用者資訊
  2. git init 初始化 git 儲存庫,這樣 git 才能幫你版本控制~(每個專案都要做一次!)
  3. git add 將檔案加到暫存區
  4. git commit 將暫存區內容打包保存到儲存庫
  5. git status 隨時檢視檔案狀態

基本上,這幾個指令就是用 git 版本控制最常用的指令啦!! 現在你已經對 git 的操作稍有了解,可以自己建立專案、改檔案、版本控制、排除不要版本控制的檔案,但可能心裡還是有點疑惑,為何要有暫存區、存起來的 commit 到底是什麼、他怎麼幫我們版本控制??

下一篇文章,將會和大家一起探索 commit 的奧妙之處,解決你心中的滿滿疑惑~

留言
avatar-img
Elaine 粼粼的林林總總
7會員
35內容數
不定期地分享程式/旅遊/學習/閱讀或各式各樣的文章,如果對我的分享有興趣,歡迎來找我玩~
你可能也想看
Thumbnail
PING! 交友軟體體驗心得分享,內文詳述app操作介面,以及軟體特色與功能,並提供app下載連結,推薦給有交友需求的朋友更多選擇。
Thumbnail
PING! 交友軟體體驗心得分享,內文詳述app操作介面,以及軟體特色與功能,並提供app下載連結,推薦給有交友需求的朋友更多選擇。
Thumbnail
身為自由工作者,我分享使用 Ping! 交友軟體的實際體驗,從真人認證、生活標籤到聊天節奏,談談我如何在不增加壓力的情況下,透過交友軟體認識價值觀合拍的人,建立高品質的交友關係。
Thumbnail
身為自由工作者,我分享使用 Ping! 交友軟體的實際體驗,從真人認證、生活標籤到聊天節奏,談談我如何在不增加壓力的情況下,透過交友軟體認識價值觀合拍的人,建立高品質的交友關係。
Thumbnail
你也和我一樣,生活圈固定、想認識新朋友又害怕遇到怪人嗎?身為研生與大I人,這篇文章分享了我實際使用 Ping! 交友軟體的經驗。Ping! 主打真人認證、慢速交友與高品質聊天體驗,讓交友回到安心、不焦慮的狀態。
Thumbnail
你也和我一樣,生活圈固定、想認識新朋友又害怕遇到怪人嗎?身為研生與大I人,這篇文章分享了我實際使用 Ping! 交友軟體的經驗。Ping! 主打真人認證、慢速交友與高品質聊天體驗,讓交友回到安心、不焦慮的狀態。
Thumbnail
交友軟體Ping!透過嚴格的真人認證機制,替使用者把關「照騙」與假帳號的風險,Ping!也強調照片與個性並重,透過個人頁面設計,讓用戶在瀏覽照片的同時,也能深入瞭解對方的興趣、價值觀,不僅是一個交友軟體,更是引導使用者找到真實自我、開啟高品質情感關係的催化劑。
Thumbnail
交友軟體Ping!透過嚴格的真人認證機制,替使用者把關「照騙」與假帳號的風險,Ping!也強調照片與個性並重,透過個人頁面設計,讓用戶在瀏覽照片的同時,也能深入瞭解對方的興趣、價值觀,不僅是一個交友軟體,更是引導使用者找到真實自我、開啟高品質情感關係的催化劑。
Thumbnail
這篇文章介紹了git常用的幾個指令,包括分支合併、重製修改、修改紀錄等。另外也提到了一個好用的小工具tig。這些指令的使用方法和技巧都有詳細介紹,可以幫助讀者更好地使用git。
Thumbnail
這篇文章介紹了git常用的幾個指令,包括分支合併、重製修改、修改紀錄等。另外也提到了一個好用的小工具tig。這些指令的使用方法和技巧都有詳細介紹,可以幫助讀者更好地使用git。
Thumbnail
這篇文章介紹了基礎的 Git 指令,對於懂得使用 Git 的開發人員來說,這些指令都是非常重要且實用的。文章詳細說明瞭每個指令的功能以及如何運用,對於想要更加熟悉 Git 指令的開發人員來說,這是一篇非常實用的文章。
Thumbnail
這篇文章介紹了基礎的 Git 指令,對於懂得使用 Git 的開發人員來說,這些指令都是非常重要且實用的。文章詳細說明瞭每個指令的功能以及如何運用,對於想要更加熟悉 Git 指令的開發人員來說,這是一篇非常實用的文章。
Thumbnail
這篇文章將介紹工程師使用版控和git的相關知識和技能,包括版本控制的意義和git的基本指令,以及開發流程和webhook的概念。
Thumbnail
這篇文章將介紹工程師使用版控和git的相關知識和技能,包括版本控制的意義和git的基本指令,以及開發流程和webhook的概念。
Thumbnail
最近在找資料的時候,偶然發現了兩個有趣的 git 指令:git commit --fixup 和 git rebase -i <sha> --autosquash。 研究了下發現對於像我這種每次 commit 都要斤斤計較,盡可能完美的人來說非常好用,因此寫一篇筆記記錄一下用法。
Thumbnail
最近在找資料的時候,偶然發現了兩個有趣的 git 指令:git commit --fixup 和 git rebase -i <sha> --autosquash。 研究了下發現對於像我這種每次 commit 都要斤斤計較,盡可能完美的人來說非常好用,因此寫一篇筆記記錄一下用法。
Thumbnail
這篇文章將會介紹分支的合併,以及它常見的分類。
Thumbnail
這篇文章將會介紹分支的合併,以及它常見的分類。
Thumbnail
前言   這篇文章將會以 SourceTree 作為媒介,講述 Git 中關於伺服器資料儲存狀態的介紹,並介紹如何建立分支與應用。 資料上傳 | Data Commit   版本控制最簡單的介紹,其實就是把專案的資料上傳雲端,然後進行不同版本的分類,當有需要抓回某一個功能進行展演或比對時,可以從這雲
Thumbnail
前言   這篇文章將會以 SourceTree 作為媒介,講述 Git 中關於伺服器資料儲存狀態的介紹,並介紹如何建立分支與應用。 資料上傳 | Data Commit   版本控制最簡單的介紹,其實就是把專案的資料上傳雲端,然後進行不同版本的分類,當有需要抓回某一個功能進行展演或比對時,可以從這雲
Thumbnail
前言   這篇文章將會介紹伺服器的概覽和倉庫,並介紹兩款客戶端協助使用者。 伺服器 | GitHub   線上軟體原始碼代管服務平台,使用 Git 作為版本控制軟體 GitHub 同時提供付費帳戶和免費帳戶,這兩種帳戶都可以建立公開或私有的代碼倉庫,但付費使用者擁有更多功能。   除了允許個人和組
Thumbnail
前言   這篇文章將會介紹伺服器的概覽和倉庫,並介紹兩款客戶端協助使用者。 伺服器 | GitHub   線上軟體原始碼代管服務平台,使用 Git 作為版本控制軟體 GitHub 同時提供付費帳戶和免費帳戶,這兩種帳戶都可以建立公開或私有的代碼倉庫,但付費使用者擁有更多功能。   除了允許個人和組
Thumbnail
前言   這篇文章將會介紹版本控制,並介紹相關的伺服器和客戶端,藉由比較易懂的方式介紹,可能會跟實際上有些微的落差,但會比較好理解。 版本控制   版本控制基本上是由一個名為 Git 的軟體所建立,隨著時間推進,延伸出了很多伺服器和可視話的客戶端,接下來我會一個一個介紹。 底層 | Git 客戶端
Thumbnail
前言   這篇文章將會介紹版本控制,並介紹相關的伺服器和客戶端,藉由比較易懂的方式介紹,可能會跟實際上有些微的落差,但會比較好理解。 版本控制   版本控制基本上是由一個名為 Git 的軟體所建立,隨著時間推進,延伸出了很多伺服器和可視話的客戶端,接下來我會一個一個介紹。 底層 | Git 客戶端
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News