首先從遠端版本庫clone下來一個全新的庫:
git clone username@xxx:/xxx/xxx.git
此時clone下來的,只是master分支,沒有其他分支。
查看分支:
git branch #查看本地分支 git branch -r #查看遠端分支 git branch -a #查看所有分支,包括本地和遠程的

分支名前面有 * 的,就是當前所在分支。分支名型如remote/origin/xxx的,就是遠端分支。
創建本地分支:
git branch <user_branch_name> #在本地創建一個新分支 git checkout -b <user_branch_name> #在本地創建一個新分支,並且立即切換到這個分支(第一種方式只是創建了一個分支,並沒有切換)
下面是使用 git checkout -b dev 創建的 dev 分支,會提示說已切換至新的分支 dev:

再次使用 git branch 查看分支,會發現本地有兩個分支。其中dev分支前有個 *,說明當前分支是dev:

切換本地分支:
一個版本庫可能有多個分支,例如現在有主分支master,有開發分支dev,那么從dev分支切換至master分支如下:
git checkout master #從dev分支,切換到master分支

如上提示,已經切換至master分了。
此時再使用git branch查看分支情況,可以看到master前面有個 * ,說明已經切換到master了:

其實命令行提示尾部括號中的名字,就是當前所在分支:

可以看到,最后面的括號中的master,表明了當前所在分支。
合並本地分支:
合並分支命令:git merge 的工作流程是:將指定分支,合並至當前分支。
例如需要將 dev 開發分支,合並到 master 主分支上,需要如下兩步操作:
1.切換到主分支
2.將dev合並至master
git checkout master #切換到master分支 git merge dev #將dev分支合並至master分支
例如目前有兩個分支,一個master分支,一個是dev分支。
這時新建了一個文件a.txt,在dev分支上完成git add 、 git commit兩步操作,這表明,a.txt是屬於dev分支的,切換到master分支時是看不到a.txt的。
這時切換到master分支,將dev分支合並至master,就會把dev的代碼加入到master中。master也就可以看到a.txt了。
刪除本地分支:
一個分支使用完了,可以刪除掉。例如這個分支就是為了修復某一個bug的,bug修好了,新代碼合並至master之后,這個分支就可以刪除了。
git branch -d <branch_name> #刪除本地branch_name分支

另外:刪除當前所在分支是不行的,會提示刪除失敗。
推送本地分支到遠端:
#下面local_branch_name用來指明要推送本地哪個分支,remote_branch_name用來指明遠端接收這個分支后叫什么。 git push origin [local_branch_name]:<remote_branch_name> #如果希望推送當前分支,那么local_branch_name:可以省略 git push origin remote_branch_name
#另外本地分支名與遠端分支名最好保持一致
其實只有master一個分支時做推送操作的命令中 git push origin master,最后這個master其實就是遠端的master分支名,master其實也是一個分支,git要求版本庫中必須至少要有一個分支,默認叫master。
刪除遠端分支:
刪除遠端分支有兩種方式:
1.直接branch命令刪除遠端:
git branch -r -d <remote_branch_name> #-r表示操作的是遠端 -d表示執行刪除操作
2.通過推送一個空的分支到遠端,用空分支覆蓋掉遠端分支,從而刪除這個遠端分支:
git push origin :<remote_branch_name> #注意,origin后面有一個 空格,以及一個冒號,這是必不可少的
3.刪除已被刪除的遠程分支所對應的本地分支:
一個遠程分支被刪除了,可是本地還存在其對應的分支引用,可以這樣刪除:
git fetch -p
拉取遠程分支:
1.直接拉取某一分支:
git checkout -t <remote_branch_name> #-t 意為 track,即跟蹤一個遠程分支
2.在初次clone時直接clone某一分支(默認是clone下來主分支master):
git clone <repository> -b <branch_name>
