經過一開始遇到的一些小問題,後續的操作基本上都沒有發生奇怪的事情
先推薦兩個好用的學習網站:
接著繼續本日的學習筆記
1. 前言-創造平行時空(分支)
過去我工作的環境沒有版本控制,當大家要編輯一個檔案時可能會先有 工作進度-原始版.docx
接下來出現 工作進度-A男、工作進度-修1、工作進度-B女...等
然後負責整理的人做了一個 工作進度-1100915-v1,再請一些人修正
接著 1.1、1.2...,2.0、2.0修、2.0最終修正版、2.0最終修正版-2...各種混亂的名稱
到實際報告的時候就會有人說:為什麼我都改好了,沒被修進去!
如果各路英雄能在自己的平行時空發展,最後再把成果回歸到主線時空,就不會讓最後成果混亂了
有這慘痛的經驗,勢必要把這項功能學好!
1. 認識HEAD 自由穿梭
HEAD像是自己的頭,想看哪就到哪,在沒有下指令調整的時候,就是一路向前看
所以預設會看到 目前分支+最新提交的名稱 這個位置
每提交一次,就會再往前看
指令 | 功用說明 |
---|---|
git branch | 查看所有分支(本地) |
git branch -a | 查看所有分支(本地+遠端) |
git branch 分支名稱 | 新增分支 |
git checkout 分支名稱 | 切換分支,切換完用 git log指令會看到 HEAD -> 分支名稱,表示切換到分支了 |
git checkout -b 分支名稱 | 上面兩個指令合體,建立分支後切換過去 |
git branch -d 分支名稱 | 刪除分支 |
git merge 分支名稱 | 合併指定分支到目前的分支,假設分支做完,就可以checkout到master,把分支合併進來 |
git rebase 分支名稱 | 同樣是合併,但會把整個分支的歷程都併過去,而且對象相反,例如: a merge b 和 b rebase a,前者是把b分支合併到a內,後者是把a分支當做b的基礎版本 |
2. 建立tag 快速辨識
當git log查詢下來一堆hash,還要記下前四碼才能切換實在有點反人類,幫重要的版本做標籤會方便很多
指令 | 功用說明 |
---|---|
git tag | 查詢所有標籤 |
git tag -n | 查詢所有標籤+說明 |
git tag -l 關鍵字 | 關鍵字查詢標籤,如果有版本號可以直接打數字方便查詢 |
git show 標籤名稱 | 查詢指定標籤詳細資訊 |
git tag 標籤名稱 | 新增標籤 |
git tag -am 說明 標籤名稱 | 新增標籤+說明,註解越多、別人越容易掌握脈絡 |
git tag -d 標籤名稱 | 刪除標籤 |
3. 副本開不完 暫離一下
當做 A專案到一半,突然 B專案的靈感乍現或是被老闆指派去救援 C專案,就用 stash把現在的工作先記著,等回來之後直接叫出來就好
指令 | 功用說明 |
---|---|
git stash | 建立當前目錄暫存 |
git stash list | 查看所有暫存 |
git stash pop | 還原暫存 |
git stash drop | 刪除最新暫存 |
git stash clear | 刪除全部暫存 |
進入各種穿梭、合併和刪除後開始變得複雜,自己搞也是沒有什麼實戰感,可以利用上面分享的 LearnGitBranching挑戰各種練習,明天繼續更新 Git篇!