--- tags: SOP, OpenDB title: Git SOP on OpenDB --- # Git SOP on OpenDB [TOC] ## 基本指令 ### 創建 .git 目錄 - 比方說我想對 ~/git_test 這個資料夾做版本控制 - `git init git_test/` ![](https://i.imgur.com/Knq4yPs.png) - 設定 config 檔 - `git config --global user.name "Ashley"` - `git config --global user.email "user@gmail.com”` - `git config --global core.editor vim` - 查看 config 檔 - `git config --list` ### Add - 新增 file1.txt & file2.txt ![](https://i.imgur.com/z9HZ1bJ.png) - 用 `git status` 查看目前 git 狀態 ![](https://i.imgur.com/03fmpDX.png) > 表示 file1.txt 與 file2.txt 尚未加入版本控制 - `git add [filename/directory]`: 加入至暫存區 ![](https://i.imgur.com/vL4TvmZ.png) > 表示已加入,移除使用 `git rm --cached [filename]` ### commit - `git commit -m "描述"` ![](https://i.imgur.com/ePDtJ2o.png) ### 查詢版本 - 列出版本的詳細資料:`git log` - 列出所有的版本變化:`git reflog` ![](https://i.imgur.com/K8Ae9g0.png) --- ## 恢復版本 > 所做修改 (edit file2),且加入版本控制 ![](https://i.imgur.com/LvgCo7y.png) - 檢視某個版本`git checkout [版本號]` ![](https://i.imgur.com/0ciMf18.png) > 可以用 5048438 或是 HEAD~1: 概念有點像絕對地址跟相對地址 - 檢視最新版本: `git checkout master` ![](https://i.imgur.com/uNnEmTa.png) ![](https://i.imgur.com/8czZ18Y.png) ### 確認恢復上一個狀態 ---- `reset` - `git reset 5048438` ![](https://i.imgur.com/KONchd6.png) - 此時的狀態回復到 initial 的狀態,且 file2 的更改存在暫存區。 --- ## 分支功能 > 建議寫某個功能時,都建立一個 branch,等到確定可用在 merge 到 master ### 建立分支 - `git branch [BranchName]` - 建立分支,但所在分支不會改變 ### 切換分支 - `git checkout [BranchName]` ### 合併分支 (將某個 branch 合併到 master) - `git checkout master` - `git merge [BranchName]` ![](https://i.imgur.com/VsEVy5V.png) ### 顯示所有分支 - `git log --oneline --all --graph` ![](https://i.imgur.com/eh8Mka5.png) (我的被我搞得有點亂,但大致會得到這樣的畫面)