博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
git branch 分支管理
阅读量:5173 次
发布时间:2019-06-13

本文共 1613 字,大约阅读时间需要 5 分钟。

在多人协作的情况下,master通常是稳定的分支.可以再建一些"develop","testing"等名称的分支.主管master的人做开发的话最好也建立自己的分支.

命令操作

git branch 列出当前已经checkout出来的分支,当前分支前边用星号表示.

git branch -a 列出所有本地和远程的分支

开始一项功能的开发工作时,基于某一分支创建分支。

  1. 如基于master创建新分支my

    $ git checkout -b my master
    Switched to a new branch "my"

  2. 切换到自己的分支my

    $ git checkout my
    本地文件将会发生变化,使用git log看一下提交的日志
    此时HEAD指针指向my分支中最新的commit id。

  3. 同步master到自己的分支(适当的时候)

    git merge --no-ff master

  4. 合并分支

    上一步其实就是合并操作,同样用法git merge [option] branch_name
    列出已合并到当前分支的其它分支: git branch --merged
    未合并到当前分支的分支: git branch --no-merged

  5. push

    将当前分支提交到关联的远程仓库的对应分支
    git push origin my

  6. 修改分支名称:

    git branch -m <oldname> <newname>

  7. 删除远程分支:

    推送一个空分支到远程分支,其实就是删除远程分支: git push origin :<branchName>
    在Git v1.7.0 之后,可以使用--delete选项删除远程分支: git push origin --delete <branchName>
    删除不存在对应远程分支的本地分支,比如远程的master分支:通过git remote show origin可以看出关联的远程分支处于stale(过时)状态,并提示使用git remote prune删除.使用 git remote prune origin 可以将其从本地版本库中去除。更简单的方法是使用fetch命令的-p选项,它在fetch之后删除掉没有与远程分支对应的本地分支:git fetch -p.

更进一步

切换分支时,如果工作区非clean状态,有如下几种处理方式:

  1. add并且commit,再checkout,提交到当前分支
  2. add但不commit,可以stash,然后checkout回来之后stash apply,在commit,提交到当前分支
  3. add但不commit,也不stash,直接checkout,然后再commit的话,记录就在切换分支下面。

其背后的原因:一个本地的git repo只有一个工作区和暂存区,但是有多个分支的提交区,而我们的checkout只是将HEAD指针从一个分支切换到另一个分支。

git-space

命令提示符显示分支名称

在bash命令行提示符中添加git仓库的当前branch名称:

function git-branch-name {  git symbolic-ref HEAD 2>/dev/null | cut -d"/" -f 3}function git-branch-prompt {  local branch=`git-branch-name`  if [ $branch ]; then printf " (%s)" $branch; fi}PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]$(git-branch-prompt)'$'\n''\$ '# 其中$'\n'是换行

转载于:https://www.cnblogs.com/makefile/p/git-branch.html

你可能感兴趣的文章
2017-3-24 开通博客园
查看>>
【MySQL性能优化】MySQL常见SQL错误用法
查看>>
Vue2全家桶之一:vue-cli(vue脚手架)超详细教程
查看>>
Struts 2 常用技术
查看>>
树形DP
查看>>
python flask解决上传下载的问题
查看>>
语法测试
查看>>
CES1
查看>>
java webcontroller访问时报415错误
查看>>
qcow2、raw、vmdk等镜像格式
查看>>
Jzoj5455【NOIP2017提高A组冲刺11.6】拆网线
查看>>
特定字符序列的判断(1028)
查看>>
华为面试
查看>>
平衡二叉树(AVL Tree)
查看>>
【BZOJ3295】[Cqoi2011]动态逆序对 cdq分治
查看>>
【CF799E】Aquarium decoration 线段树
查看>>
大运飞天 鲲鹏展翅
查看>>
从ECMA到W3C
查看>>
软件工程--第十六周学习进度
查看>>
yii2 ActiveRecord多表关联以及多表关联搜索的实现
查看>>