Home Git 最清楚、最簡單教學(中文)
Post
Cancel

Git 最清楚、最簡單教學(中文)

什麼人需要學版控

任何人!只要你的檔案需要修改、沒辦法一次就完成的,就需要使用 版控。應用範圍:論文(特別是遇到機車的教授)、code、大型報告…etc,若你的檔案還是需要多人 一起協同完成的,那你一定要用版控,人生寶貴,不要浪費時間在去管理版本。 Git 是一種分散式版本控制系統,它是一個用於跟蹤和管理代碼變更的工具。Git 的主要功能是記錄文件的歷史記錄,使多個開發者能夠協同工作,同時保持代碼的一致性和可追溯性。

Git 的難學之處! (其實不難,相信我 !!!)

現在是站在一般人的角度來看 git,讓人望之卻步的原因有很多,名詞太多了 Repository、Branch、Commit、Merge、push、pull、add、master..etc

根本看過就忘,更不用說還要去使用。但是如果透過範例實際操作一遍,其實很多概念就懂了,根本不用去記這些名詞。

重要聲明

以下Git教學只需要安裝一個程式,甚至你不想要安裝,windowns 上還可下載 portable 的版本解壓縮也可以。 使用情境:單獨一個人在自己的電腦上開發修改檔案,需要做版本控制的情況

Desktop View

示範

以下示範一個檔案的生成,經過三次的修改後,在版本間切換

Step 1:

建立 .git 資料夾: 至要進版控之資料夾 指令

1
git init

Desktop View

Step 2:

第一次修改:加入要被 commit 的檔案 指令

1
git add .

commit, “ committed message” -> 寫要提醒未來的自己的資訊,不要寫到自己都看不懂,ex: “改一下內容”,”修改看不爽的地方”..etc

1
git commit -m " committed  message"

可以看到自己剛剛 commit 的資訊

1
git log

建議使用以下指令去看 log,排版比較簡短清楚

1
git log --pretty=format:"%h %an %ar - %s"

Desktop View

Step 3:

第二次修改:改完檔案後,加入被 commit 的檔案

1
git add .

Note: 此時可看要被 commit 的檔案與上個版本的不同之處

1
git diff –staged

Desktop View

Step 4:

Desktop View

第三次修改

Step 5:

Desktop View

Step 6:

開始切換版本吧

1
git checkout your_commit_ID

Desktop View

Step 7:

用 git log 看自己在哪個 commit 狀態上

Desktop View

Step 8:

直接回到最新版的狀態

1
git checkout master

Desktop View

Step Step 9:

本地有修改的情況下,不允許切換至其他 commit 的狀態

Desktop View

Step 10:

解法:放棄目前本地的修改

指令

1
git checkout -- .

Desktop View

完成 !!!

以上的操作全部在 local 端,完全沒有涉及到網路的 Repository,希望 這個簡單的操作示範可以讓你了解到版控的功能,及 git 的強大,讓人可以有空去玩玩 git。

要將 local 的版控紀錄上到網路,只要網路找個地方去放這些紀錄就好,下次再說吧 !

額外重要 command

1
git rev-list --count HEAD

這個指令會計算從當前分支的初始 commit 到最新 commit 之間的總數

1
git rev-list --count main

如果你想計算特定分支的 commit 數,將 HEAD 換成該分支的名稱即可。

1
git branch

列出所有本地分支,並會在當前所在分支前面加上 * 來標識。

Desktop View

main 前面有 *,表示你當前所在的分支。

1
git status

用來查看當前 Git 倉庫的狀態。

  1. 哪些文件被修改但尚未提交。
  2. 哪些文件已經被添加到暫存區等待提交。
  3. 有哪些文件尚未被 Git 追蹤(未被添加到版本控制中)。
  4. 當前分支的狀態(例如是否有需要合併的更新)。

Desktop View

☝ツ☝

This post is licensed under CC BY 4.0 by the author.

👈 ツ 👍

The Clearest and Simplest Git Tutorial(English)

Playing Audio Files on Web Pages(English)