git config命令
git help命令
git init命令
git add命令
git clone命令
git status命令
git diff命令
git commit命令
git reset命令
git rm命令
git mv命令
git branch命令
git checkout命令
git merge命令
git mergetool命令
git log命令
git stash命令
git tag命令
git fetch命令
git pull命令
git push命令
git remote命令
git submodule命令
git show命令
git shortlog命令
git describe命令
git rebase命令
git branch命令
git branch
命令用於列出,創建或刪除分支。
簡介
git branch [--color[=<when>] | --no-color] [-r | -a]
[--list] [-v [--abbrev=<length> | --no-abbrev]]
[--column[=<options>] | --no-column] [--sort=<key>]
[(--merged | --no-merged) [<commit>]]
[--contains [<commit]] [--no-contains [<commit>]]
[--points-at <object>] [--format=<format>] [<pattern>…]
git branch [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>]
git branch (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>]
git branch --unset-upstream [<branchname>]
git branch (-m | -M) [<oldbranch>] <newbranch>
git branch (-d | -D) [-r] <branchname>…
git branch --edit-description [<branchname>]
描述
如果給出了--list
,或者如果沒有非選項參數,則列出現有的分支; 當前分支將以星號突出顯示。 選項-r
導致遠程跟蹤分支被列出,而選項-a
顯示本地和遠程分支。 如果給出了一個<pattern>
,它將被用作一個shell通配符,將輸出限制爲匹配的分支。 如果給出多個模式,如果匹配任何模式,則顯示分支。 請注意,提供<pattern>
時,必須使用--list
; 否則命令被解釋爲分支創建。
使用--contains
,僅顯示包含命名提交的分支(換句話說,提示提交的分支是指定的提交的後代),--no-contains
會反轉它。 隨着已經有了,只有分支合併到命名提交(即從提交提交可以提前提交的分支)將被列出。 使用--no
合併只會將未合併到命名提交中的分支列出。 如果缺少<commit>
參數,則默認爲HEAD
(即當前分支的提示)。
示例
以下是一些示例 -
1. 查看當前有哪些分支
$ git branch
master
* wchar_support
上面顯示結果中,當前有兩個分支:master 和 wchar_support,當前在 wchar_support 分支上,它前面有個星號(*
)。
2. 新建一個分支
下面命令將創建一個分支:dev2 -
$ git branch dev2
3. 切換到指定分支
下面命令將切換到指定分支:dev2 -
$ git checkout dev2
$ # 再次查看分支
$ git branch
* dev2
master
wchar_support
4. 查看本地和遠程分支
$ git branch -a
* dev2
master
wchar_support
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/wchar_support
5. 將更改添加到新建分支上
$ git status
On branch dev2
Untracked files:
(use "git add <file>..." to include in what will be committed)
newfile.txt
nothing added to commit but untracked files present (use "git add" to track)
Administrator@MY-PC /D/worksp/sample (dev2)
$ git add newfile.txt
Administrator@MY-PC /D/worksp/sample (dev2)
$ git commit newfile.txt -m "commit a new file: newfile.txt"
[dev2 c5f8a25] commit a new file: newfile.txt
1 file changed, 2 insertions(+)
create mode 100644 newfile.txt
Administrator@MY-PC /D/worksp/sample (dev2)
$ git push origin dev2
Username for 'http://git.oschina.net': [email protected]
Password for 'http://[email protected]@git.oschina.net':
Counting objects: 12, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (8/8), done.
Writing objects: 100% (11/11), 965 bytes | 0 bytes/s, done.
Total 11 (delta 3), reused 0 (delta 0)
To http://git.oschina.net/yiibai/sample.git
* [new branch] dev2 -> dev2
Administrator@MY-PC /D/worksp/sample (dev2)
$
6. 修改分支的名字
$ git branch
* dev2
master
wchar_support
Administrator@MY-PC /D/worksp/sample (dev2)
$ git branch -m dev2 version.2
Administrator@MY-PC /D/worksp/sample (version.2)
$ git branch -r
origin/HEAD -> origin/master
origin/dev2
origin/master
origin/wchar_support
Administrator@MY-PC /D/worksp/sample (version.2)
$ git branch
master
* version.2
wchar_support
7. 刪除遠程分支
刪除一個名稱爲:dev2 的遠客
$ git branch
master
* version.2
wchar_support
Administrator@MY-PC /D/worksp/sample (version.2)
$ git push origin --delete dev2
Username for 'http://git.oschina.net': [email protected]
Password for 'http://[email protected]@git.oschina.net':
To http://git.oschina.net/yiibai/sample.git
- [deleted] dev2
8. 合併某個分支到當前分支
合併分支:version.2到當前分支(master),如下 -
$ git branch
master
* version.2
wchar_support
Administrator@MY-PC /D/worksp/sample (version.2)
$ git checkout master
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
Administrator@MY-PC /D/worksp/sample (master)
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
Administrator@MY-PC /D/worksp/sample (master)
$ git merge version.2
Updating e7d1734..c5f8a25
Fast-forward
mydir/text.txt | 0
newfile.txt | 2 ++
src/string.py | 5 ++++-
3 files changed, 6 insertions(+), 1 deletion(-)
create mode 100644 mydir/text.txt
create mode 100644 newfile.txt
$