分支命名
- 可以使用斜杠(/)構建分層命名方案
- 不能以減號(-)開頭,分層的命名不能以點(.)開頭
- 不能使用連接兩個點(.)
- 不能包括空格或其他空白字符以及~ ^ : ? * [
列出分支名稱?
- git branch ?? ??? ?列出本地版本庫的分支
- git branch -r ?? ?列出遠程跟蹤分支
- git branch -a ?? ?列出本地版本庫的分支和遠程跟蹤分支
查看分支提交
- git show-branch ?? ?列出本地版本庫的分支
- git show-branch -r ?列出遠程版本庫分支
- git show-branch -a ?列出本地版本庫的分支和遠程版本庫分支
- git show-branch 分支名?? ?列出指定分支的提交,可以使用一組分支名或通配符*
創建分支
git branch 分支名稱 {starting-commit}
- 在指定的提交上創建一個命名分支
- 若不指定提交,默認使用當前分支上的最近提交
- 僅創建分支,不改變工作目錄
檢出分支
git checkout 分支名稱
- 將HEAD指向檢出分支
- 將索引重置為檢出分支最新提交點
- 更新工作目錄
檢出時工作目錄變更
未跟蹤的文件:
- 在檢出分支中不存在,保留不變
- 在檢出分支中存在(即使內容一樣),警告并阻止檢出分支
已跟蹤-已提交過的文件:已修改且已提交? 或 未修改
- 在檢出分支不存在,從工作目錄和暫存區刪除
- 在檢出分支中存在,使用檢出分支的版本替換工作目錄和暫存區版本
已跟蹤-已提交過的文件:已修改且未提交
- 警告并阻止檢出分支
已跟蹤-從未提交過的文件(當前分支的任何提交內都無此文件版本)
- 工作目錄和暫存區保留不變
處理方式:
- ?? ?提交變更到當前分支
- ?? ?合并變更到檢出分支:git checkout -m
無頭狀態
HEAD指針直接指向一個提交,而不是一個分支的名稱。
什么情況下處于無頭狀態:
- 檢出不是分支頭部的提交:git checkout 提交
- 檢出標簽引用的提交
- 等
影響:
- ?? ?可以正常提交,但沒有分支記錄,
- ?? ?當再使用git checkout branch檢出分支后,該提交會丟失
- ?? ?可以使用git checkout -b new_branch新建個分支記錄此提交
刪除分支
git branch -d 分支名稱
- 技術上僅僅刪除了分支名稱(指向分支最近的提交)
- 不允許刪除當前分支