整理一下自己學的 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 的必選裝備,而且是免費的
二、設定
安裝完成後需要設定自己的身分資訊
| |
其中 Your Name 替換為您的姓名,email@example 替換為您的信箱
三、建立版本庫 (儲存庫)
選擇一個資料夾,然後執行指令
| |
這樣該資料夾就成為可以被 Git 管理的儲存庫,請勿隨意修改 ./.git 目錄下的檔案 (通常這是隱藏檔),該目錄內容是 Git 用來追蹤管理版本庫的
或者也可以從 GitHub 上 Clone 儲存庫到本地
Clone 別人的儲存庫
如果不修改然後提交,使用 HTTPS 即可,例如
| |
儲存庫連結可訪問 儲存庫所在網頁 ,點擊 Code 獲得
如果 Clone 下來後需要提交更改,需要儲存庫的擁有者將您的金鑰添加到儲存庫的 Deploy keys,此時可以使用 SSH Clone
| |
不過一般修改提交的話還是先 Fork 一份修改,然後再透過 Pull requests 提交比較好
Clone 自己的儲存庫
先在個人的設定處添加 SSH 公鑰: SSH and GPG keys (github.com)
然後以上兩種方法皆可
四、檔案提交到本地儲存庫
經過一番操作後,多了幾個檔案,該提交到儲存庫了
將檔案添加到本地儲存庫
| |
添加完成後該提交了
| |
在 some details 處描述本次提交了什麼
那如果有些檔案我不想提交到儲存庫呢,也就是有些檔案可能不需要 Git 進行追蹤是否被修改
建立 .gitignore 檔案,然後把不想被 Git 管理的檔案名稱填入,一行一個即可
| |
忽略了也可以強制提交:git add -f test.pyc
也有一些現成的檔案可以參考: https://github.com/github/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^
退回到指定版本:
| |
如果您操作錯誤退回了,請不要關閉指令提示字元視窗,查看指令日誌:git reflog 找到剛才的版本號退回即可
六、本地儲存庫連結 GitHub
本地建立了一個儲存庫,想要上傳到 GitHub 的話,可以在 GitHub 上新建一個 repo,然後將本地儲存庫連結遠端儲存庫以上傳
| |
如果是從遠端儲存庫 Clone 的則不需要連結
接著是在本地做了一些修改並提交,需要推送至遠端儲存庫
推送指令:git push origin master
指令為推送到遠端儲存庫的 master 分支
這裡需要注意的是使用 VS Code 建立的儲存庫預設分支為 master 而 GitHub 預設分支為 main,直接推送 git push origin main 會失敗,可以先修改本地分支名稱再推送
| |
不過也可以修改預設建立的分支名稱為 main
| |
另外,可以設定預設推送儲存庫為 origin 的 main 分支
| |
這樣之後推送的時候直接使用
| |
即可
如果連結儲存庫時輸入錯了
首先查看遠端儲存庫資訊:git remote -v
然後刪除: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
比如添加一個搜尋功能,首先將主分支提交完成後建立新分支
| |
上述指令表示建立並切換到分支
search
在新分支 search 修改並測試完成後提交
| |
然後切換回主分支 main
| |
合併分支 search
| |
(可選) 刪除 search 分支
| |
八、建立伺服端
九、其他
同時使用 GitLab 和 GitHub: document-library/Git-study.md at master · LiangJunrong/document-library (github.com)
參考文章
document-library/Git-study.md at master · LiangJunrong/document-library · GitHub
Git 教程 - 廖雪峰的官方網站 (liaoxuefeng.com)
如何連接本地倉庫與 GitHub 倉庫_joy_we1 的博客-CSDN 博客