Git 分支
Git 分支其實只是一個指向某提交的可移動輕量級指標, Git 預設分支名稱是 master,
隨著不斷地製作提交,master 分支會為你一直指向最後一個提交, 它在每次提交的時候都會自動向前移動。
查看分支
git branch
不加任何參數,你將會得到所有分支的簡易清單
$ git branch
iss53
* master
testing
-v
:查看各分支最後一個提交內容--merged
,--no-merged
:從清單中篩選出已經合併或尚未合併到目前分支的分支。
$ git branch -v
iss53 93b412c fix javascript issue
* master 7a98805 Merge branch 'iss53'
testing 782fd34 add scott to the author list in the readmes
建立一個新的分支
git branch [new branch name]
建立一個新的、可移動的指標,在目前提交上新建一個指標。二個分支都指向同一系列的提交歷史
此命令只是建立一個新的分支,並不會切換過去。
$ git branch testing
Git 它保存了一個名為 HEAD 的特別指標,會指向你當前所在的分支,你可藉此知道你目前在哪個分支上工作。
刪除一個分支
加上後綴 -d [branch name]
可以刪除指定分支,注意,刪除只是移除分支名稱,該分支內的提交仍然存在於 Git 紀錄中。
$ git branch -d testing
在分支之間切換
git checkout
切換到一個已經存在的分支,這會移動 HEAD 並指向 testing 分支。
$ git checkout testing
這條命令做了兩件事, 它把 HEAD 指標移過去並指向 testing 分支,然後把工作目錄中的檔案換成 testing 分支所指向的快照內容;
加上後綴 -b [new branch name]
可以在創建新分支的同時切換 HEAD 指標。
$ git checkout -b testing
還原指定檔案版本,例如誤刪或是改壞某個特定檔案,又不想把整個紀錄 reset 回去時,可以執行如下動作,這段指令的意思是把 master 分支中最新版的 test.js 給還原
$ git checkout master test.js
以某遠端倉庫位置建立新分支
假如當前 git 中包含 remote - origin, test,可以透過如下指令切換建立一個 remote test 的分支內容
$ git checkout -b [branch-name] [remote/branch]