Git 學習

📢 本文由 gemini-3-flash-preview 翻譯

整理一下自己學的 Git 相關內容吧

一、安裝

  • 在 Windows 上安裝 Git

從 Git 官網下載安裝: https://git-scm.com/download/win

安裝完成後執行一次 Git Bash

  • 在 Linux 上安裝 Git

Debian:sudo apt-get install git

Fedora:dnf install git

CentOS:yum install git

其他參考: https://git-scm.com/download/linux

  • 在 Mac OS X 上安裝 Git

一是安裝 homebrew,然後透過 homebrew 安裝 Git,具體方法請參考 homebrew 的文件: http://brew.sh/

二是直接從 AppStore 安裝 Xcode,Xcode 整合了 Git,不過預設沒有安裝,你需要執行 Xcode,選擇選單 Xcode - Preferences,在彈出視窗中找到 Downloads,選擇 Command Line Tools,點選 Install 就可以完成安裝了

Xcode 是 Apple 官方 IDE,功能非常強大,是開發 Mac 和 iOS App 的必選裝備,而且是免費的

二、設定

安裝完成後需要設定自己的身分資訊

1
2
git config --global user.name "Your Name"
git config --global user.email "[email protected]"

其中 Your Name 替換為您的姓名,email@example 替換為您的電子郵件

三、建立儲存庫

建立新的 Git 儲存庫可以本地建立或者從遠端儲存庫複製 (Clone)

本地儲存庫

選擇一個資料夾,然後執行指令

1
git init

這樣該資料夾就成為可以被 Git 管理的儲存庫,請勿隨意修改 ./.git 目錄下的檔案 (通常這是隱藏檔),該目錄內容是 Git 用來追蹤管理版本庫的

複製自己的儲存庫

在個人設定處新增 SSH 公鑰: SSH and GPG keys ,然後就可以直接使用 SSH 複製囉,例如

1
git clone [email protected]:yexca/typecho-theme-book.git

複製需要修改的儲存庫

儲存庫的擁有者邀請您共同協作或者將您的金鑰新增到儲存庫的 Deploy keys 後,您將擁有對於該儲存庫的修改權限,此時可以使用 SSH 複製,修改後提交,例如

1
git clone [email protected]:yexca/typecho-theme-book.git

為優秀專案貢獻心力

這種一般是先 fork 一份,自己本地修改好後再透過 Pull requests 提交,具體可參考

如何使用 github 給大佬遞茶 - idealclover

如何在 GitHub 提交第一個 pull request

複製無權限的儲存庫

使用 HTTPS 複製就行,例如

1
git clone https://github.com/yexca/typecho-theme-book.git

儲存庫連結可訪問 儲存庫所在網頁 ,點選 Code 獲得

四、檔案提交

經過一番操作後,多了幾個檔案,該提交到儲存庫了

將檔案新增到本地儲存庫

1
2
3
git add filename
# 或者下面是提交所有修改的檔案
git add .

新增完成後該提交了

1
git commit -m "some details"

some details 處描述本次提交了什麼

提交規範

雖然提交內容可以隨意書寫,但是最好還是遵循一定的提交規範比較好,以下是一些常用的規範

前綴適用場景
feat引入了新功能(比如新寫了一個上傳大頭貼的 API)
fix修復了一個錯誤 (Bug)
refactor程式碼重構,既不修復錯誤也不添加新功能
chore瑣碎的工作。比如修改 .gitignore,或者更新 Maven 依賴版本
docs只改動了文件(README, JavaDoc 等)

在前綴後可以加入具體修改的模組,比如

1
git commit -m "refactor(OSS): replace Aliyun OSS with AWS S3 SDK"

忽略檔案

如果有些檔案不想提交到儲存庫,也就是有些檔案可能不需要 Git 進行追蹤是否被修改的話,可以建立 .gitignore 檔案,然後把不想被 Git 管理的檔案名稱填入,一行一個即可

1
2
3
4
5
# .gitignore 檔案
test/    # 忽略 test 資料夾
test    # 忽略 test 檔案
*.py[cod]    # 忽略 *.pyc *.pyo *.pyd 檔案
!app.pyc    # 不忽略 app.pyc 檔案

忽略了也可以強制提交:git add -f test.pyc

也有一些現成的檔案可以參考: https://github.com/github/gitignore

如果需要修改 .gitignore 檔案並再次生效,需要先清除快取

1
2
3
4
5
6
# 清除快取
git rm -r --cached .
# 重新遍歷檔案
git add .
# 提交檔案
git commit -m "update .gitignore"

五、紀錄與還原

使用 git status 可以查看儲存庫的狀態

使用 git diff 查看上次提交修改的內容

使用 git log 查看歷史紀錄,即日誌,如果資訊太多可以加上 --pretty=oneline 參數,此時可以看到 commit ID

commit ID 後如果有 HEAD -> master 則說明此為最新提交,也就是當前版本。Git 使用 HEAD 表示當前版本,上一個版本就是 HEAD^,上上個版本是 HEAD^^ ,往上 60 個版本可以寫成 HEAD~60

還原到上一個版本 git reset --hard HEAD^

還原到指定版本:

1
2
3
4
git reset --hard commitID
# 例如 commit ID 為 eaadf4e385e865d25c48e7ca9c8395c3f7dfaef0,可以寫如下:
git reset --hard eaadf4
# 只要寫前幾位可以識別就行,沒必要寫全

如果你操作失誤還原了,請不要關閉命令列視窗,查看指令紀錄:git reflog 找到剛才的版本號還原即可

六、遠端推送

如果需要將程式碼推送到遠端儲存庫需要先連結,但從遠端儲存庫複製的預設會連結好,不需要額外操作

連結遠端儲存庫

本地建立了一個儲存庫,想要上傳到 GitHub 的話,可以在 GitHub 上新建一個 repo,然後將本地儲存庫連結遠端儲存庫以進行上傳

1
git remote add origin [email protected]:[your repo]

推送程式碼

使用 push 指令進行推送,例如

1
git push origin master

該指令為推送到遠端儲存庫的 master 分支

修改分支

這裡需要注意的是使用 Git 建立的儲存庫預設分支為 master,而 GitHub 預設分支為 main,如果想和 GitHub 保持一致,可以修改本地分支名稱

1
git branch -m master main

不過也可以修改預設建立的分支名稱為 main

1
git config --global init.defaultBranch main

預設分支

另外,可以設定預設推送儲存庫為 origin 的 main 分支

1
git push --set-upstream origin main

之後推送時直接使用

1
git push origin

即可

重新連結

可以透過以下指令查看遠端儲存庫資訊

1
git remote -v

如果連結儲存庫時輸入錯了,可以使用以下指令刪除

1
git remote rm RepoName

一般遠端儲存庫名稱為 origin,所以刪除指令為 git remote rm origin

七、分支管理

Git 分支是 Git 中用來獨立開發不同功能、修復問題或實驗新想法的機制。透過分支,可以在不影響主分支的情況下自由地進行更改

列出所有分支:git branch

建立分支:git branch new_branch

切換到分支 1:git checkout new_branch

切換到分支 1:git switch new_branch

推送到分支:git push origin cheny

比如添加一個搜尋功能,首先將主分支提交完成後建立新分支

1
git switch -c search

上述指令表示建立並切換到分支 search

在新分支 search 修改並測試完成後提交

1
2
git add .
git commit -m "添加搜尋功能"

然後切換回主分支 main

1
git switch main

合併分支 search

1
git merge search

(可選) 刪除 search 分支

1
git branch -d search

八、建立伺服器端

參考: 建置 Git 伺服器端及同步到指定目錄

九、其他

同時使用 GitLab 和 GitHub: document-library/Git-study.md

參考文章

Git 教程 - 廖雪峰的官方網站

如何連接本地倉庫與 GitHub 倉庫 - CSDN博客

將本地 master 分支代碼提交到遠端 main 分支

git 修改 .gitignore 后生效

This post is licensed under CC BY-NC-SA 4.0 by the author.
最後更新 2026-02-26 18:26 +0900