git branch 分支管理

人工智能22

在多人协作的情况下,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></newname></oldname>
  7. 删除远程分支:
    推送一个空分支到远程分支,其实就是删除远程分支: git push origin :<branchname></branchname>
    在Git v1.7.0 之后,可以使用--delete选项删除远程分支: git push origin --delete <branchname></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 branch 分支管理

命令提示符显示分支名称

在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'是换行

Original: https://www.cnblogs.com/makefile/p/git-branch.html
Author: 康行天下
Title: git branch 分支管理

相关文章
人工智能

[自然语言处理入门]-NLP中的注意力机制

本章的主要内容有: 注意力机制概述 传统注意力机制 注意力编码机制 1、注意力机制概述 注意力机制简单来说就是:加权求和机制/模块 加权求和模块 : 神经网络中的一个组件,可以单独使用,但更多地用作为...
人工智能

2.数据及其预处理

1. 数据样本矩阵 一般数据集的构造形式: 一行一样本,一列一特征,以下为一个示例 姓名 年龄 性别 工作经验 月薪 A 22 男 2 5000 B 23 女 3 6000 C 25 男 3 7000...
人工智能

语音识别基础知识一

1 、人耳组成的三部分: 外耳:外耳包含耳翼和外耳道,耳翼具有定向作用,外耳道同其它管道一样也有共振频率,大约是3400Hz。鼓膜位于外耳道内端,声音的振动通过鼓膜传到内耳。 中耳:由三块听小骨组成,...
人工智能

推荐系统架构

推荐系统架构 推荐和搜索系统核心的的任务是从海量物品中找到用户感兴趣的内容。在这个背景下,推荐系统包含的模块非常多,每个模块将会有很多专业研究的工程和研究工程师,作为刚入门的应届生或者实习生很难对每个...
人工智能

Paddleseg安装

文章目录 PaddlePaddle安装 * CPU版本 GPU版本 - 检查GPU版本是否安装成功 CUDA安装教程 2.下载PaddleSeg代码 3.安装PaddleSeg依赖 4.确认环境安装成...
人工智能

中文文本纠错任务简介

最近在梳理中文文本纠错任务,文本根据搜集到的文章整理成的任务简介,在此先感谢大佬们分享的高质量资料。 任务简介 中文文本纠错是针对中文文本拼写错误进行检测与纠正的一项工作,中文的文本纠错,应用场景很多...
人工智能

机器学习-kmeans(k均值聚类算法)

聚类的概念 ①聚类输入无监督学习,也就是给定数据没有标签,需要我们人为的对数据进行归类处理。 ②聚类:把相似的东西分到一组 kmeans算法基本概念 ①kmeans算法中有个超参数k,这个k就是我们要...