Git 常用命令 - Branch
程序员文章站
2022-05-21 09:46:11
...
概念
Git 中的分支,其实本质上仅仅是个指向 commit 对象的可变指针。Git 会使用 master 作为分支的默认名字。
显示所有分支
创建分支
说明:Git 是如何知道你当前在哪个分支上工作的呢?其实答案也很简单,它保存着一个名为 HEAD 的特别指针。请注意它和你熟知的许多其他版本控制系统(比如 Subversion 或 CVS)里的 HEAD 概念大不相同。在 Git 中,它是一个指向你正在工作中的本地分支的指针(译注:将 HEAD 想象为当前分支的别名。)。
切换分支
新建并切换到该分支
查看各个分支最后一次提交对象的信息
删除分支
列出已经与当前分支合并的分支
列出尚未与当前分支合并的分支
合并分支
1. 切换到 master 分区
2. 执行如下命令进行合并操作:
创建远程分支(将本地分支 push 到远程)
删除远程分支
参考文献:
https://git-scm.com/book/zh/v1/Git-%E5%88%86%E6%94%AF
http://www.cnblogs.com/springbarley/archive/2012/11/03/2752984.html
Git 中的分支,其实本质上仅仅是个指向 commit 对象的可变指针。Git 会使用 master 作为分支的默认名字。
显示所有分支
$ git branch branch_test branch_test2 * master说明:* 代表当前工作分支
创建分支
$ git branch <branch name>注意:运行 git branch 命令,仅仅是建立了一个新的分支,但不会自动切换到这个分支中去,所以在这个例子中,我们依然还在 master 分支里工作。
说明:Git 是如何知道你当前在哪个分支上工作的呢?其实答案也很简单,它保存着一个名为 HEAD 的特别指针。请注意它和你熟知的许多其他版本控制系统(比如 Subversion 或 CVS)里的 HEAD 概念大不相同。在 Git 中,它是一个指向你正在工作中的本地分支的指针(译注:将 HEAD 想象为当前分支的别名。)。
切换分支
$ git checkout <branch name>此时,HEAD 就指向了指定的分支。
新建并切换到该分支
$ git checkout -b <branch name>这相当于执行下面这两条命令:
$ git branch <branch name> $ git checkout <branch name>
查看各个分支最后一次提交对象的信息
$ git branch -v branch_test fd0a4a0 add branch_visible.txt branch_test2 1376712 add branch2.txt * master fd0a4a0 add branch_visible.txt
删除分支
$ git branch -d <branch name>
列出已经与当前分支合并的分支
$ git branch --merged branch_test * master说明:一般来说,列表中没有 * 的分支通常都可以用 git branch -d 来删掉。原因很简单,既然已经把它们所包含的工作整合到了其他分支,删掉也不会损失什么。
列出尚未与当前分支合并的分支
$ git branch --no-merged branch_test2说明:由于该分支中还包含着尚未被合并进来的其它分支,所以简单地用 git branch -d 删除尚未被合并进来的分支时会提示错误,因为这样做会造成数据丢失:
$ git branch -d branch_test2 error: 分支 'branch_test2' 没有完全合并。 如果您确认要删除它,执行 'git branch -D branch_test2'。不过,如果你确实想要删除该分支上的改动,可以用大写的删除选项 -D 强制执行,就像上面提示信息中给出的那样。
合并分支
$ git merge <branch name>假如希望把分支(branch_test)上的代码合并到主干(master)上,可以按如下步骤进行:
1. 切换到 master 分区
2. 执行如下命令进行合并操作:
$ git merge branch_test 更新 5773b62..fd0a4a0 Fast-forward branch_visible.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 branch_visible.txt
创建远程分支(将本地分支 push 到远程)
$ git push <remote> <local branch name>[:remote branch name]例如,将本地的 branch_test 分支上传到远程仓库,远程分支的名字仍叫 branch_test:
$ git push origin branch_test(相当于 git push origin branch_test:branch_test) Username for 'url': <your user name> Password for 'url': <your password> 对象计数中: 3, 完成. Delta compression using up to 4 threads. 压缩对象中: 100% (2/2), 完成. 写入对象中: 100% (3/3), 295 bytes | 0 bytes/s, 完成. Total 3 (delta 0), reused 0 (delta 0) To <git url> * [new branch] branch_test -> branch_test
删除远程分支
$ git push <remote> :<branch name>例如:
$ git push origin :branch_test3 Username for 'url': <your user name> Password for 'url': <your password> To <git url> - [deleted] branch_test3更加完整的写法如下:
$ git push origin :heads/branch_test2 Username for 'url': <your user name> Password for 'url': <your password> To <git url> - [deleted] branch_test2
参考文献:
https://git-scm.com/book/zh/v1/Git-%E5%88%86%E6%94%AF
http://www.cnblogs.com/springbarley/archive/2012/11/03/2752984.html
上一篇: 【php】一、学生管理系统-欢迎界面
下一篇: Shell 命令行快捷键