git创建分支并提交到远程分支

2019-10-08 14:09:57

如下

远程分支的创建,一般都是基于本地分支的。即将本地的某个分支提交到远程,作为远程分支。命令如下:

1
git push origin local_branch:remote_branch

比如以本地的dev1分支,创建远程的dev分支,命令如下:

1
git push origin dev1:dev


参考地址 git创建分支

一、分支简介

git log命令中,我们可以知道,多次提交以后,就会生成一个提交链,如下:

可以抽象成如下:

但,在实际开发过程中,往往会并发地进行着多个功能开发,比如某一个功能开发到80%,突然一个更重要的功能需要提前开发,如下图:

由于功能2尚未完成,整个项目就没法提交上线了,怎么办呢?把代码回滚到功能1开发完成时,然后再开发新功能,这当然不是我们希望的。整个时候,分支就显的尤为重要。比较好的开发,应该是下面这样:

那么,git里面那什么是分支呢?

简单来说,一条提交链,即为一个分支。

如下图,有多个提交链,就代表有多少个分支。

 

为了便于观看,我们可以将分支抽象成下图:

加上master分支,图中共有四个分支。有上图可以看出,分支指向了某个提交。

在git版本库里面,分支信息保存在.git/refs/heads目录,如下:

因为我们下面就一个分支,故就一个文件master,文件名即为分支名。

现在我们来看看创建分支,使用git branch 命令。

二、本地分支的创建

创建之前,先要知道当前系统有哪些分支,可以使用如下命令:

1
git branch

创建分支的命令如下:

1
git branch branchName

下面,我们来创建一个test分支

要切换到刚创建的test分支上面,可以使用如下命令:

创建完了分支,还得切换,多麻烦啊。git自然不会让你觉得麻烦,你还可以使用如下命令创建分支:

1
git checkout -b branchName

创建完分支后,就会切换到,新建的分支上面,测试如下:

备注:对应刚空的git库,是没法直接创建分支的,我们需要通过一个提交(哪怕是通过 git commit --allow-empty -m "init git" 搞一个空的提交),来创建第一个分支,即master分支。

二、远程分支的创建

远程分支的创建,一般都是基于本地分支的。即将本地的某个分支提交到远程,作为远程分支。命令如下:

1
git push origin local_branch:remote_branch

比如以本地的dev1分支,创建远程的dev分支,命令如下:

1
git push origin dev1:dev


  • 2019-09-03 23:19:12

    ./configure 的配置和用法

    Linux环境下的软件安装,并不是一件容易的事情;如果通过源代码编译后在安装,当然事情就更为复杂一些;现在安装各种软件的教程都非常普遍;但万变不离其中,对基础知识的扎实掌握,安装各种软件的问题就迎刃而解了。Configure脚本配置工具就是基础之一,它是autoconf的工具的基本应用。

  • 2019-09-04 16:24:17

    Ubuntu apt-get更换为阿里源

    ​进入阿里巴巴开源镜像页面,找到ubuntu,点击后面的帮助,可以看到类似下面的介绍,加入就好。切记下面的第三步。

  • 2019-09-04 16:32:56

    Ubuntu tar 解压缩命令详解

    tar 解压缩命令详解,这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。

  • 2019-09-04 16:50:35

    CMake入门笔记

    Make是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CMakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。

  • 2019-09-05 20:51:15

    在Android上使用FFmpeg压缩视频

    libavcodec-提供了更加全面的编解码实现的合集 libavformat-提供了更加全面的音视频容器格式的封装和解析以及所支持的协议 libavutil-提供了一些公共函数 libavfilter-提供音视频的过滤器,如视频加水印、音频变声等 libavdevice-提供支持众多设备数据的输入与输出,如读取摄像头数据、屏幕录制 libswresample,libavresample-提供音频的重采样工具 libswscale-提供对视频图像进行色彩转换、缩放以及像素格式转换,如图像的YUV转换 libpostproc-多媒体后处理器

  • 2019-09-05 20:54:21

    在Android 中使用FFmpeg命令

    到这里就可以运行FFmpeg命令了。一直我也是这样使用,但是我在做这个项目Cut的时候发现连续调用多次FFmpeg命令会报错(在项目需要,先改变分镜头的速度,再合成视频)。 为什么会这样的呢?

  • 2019-09-06 10:30:20

    ffmpeg错误码

    AVERROR_BSF_NOT_FOUND = -1179861752 AVERROR_BUG = -558323010 AVERROR_DECODER_NOT_FOUND = -1128613112 AVERROR_DEMUXER_NOT_FOUND = -1296385272 AVERROR_ENCODER_NOT_FOUND = -1129203192 AVERROR_EOF = -541478725 AVERROR_EXIT = -1414092869 AVERROR_FILTER_NOT_FOUND = -1279870712 AVERROR_INVALIDDATA = -1094995529 AVERROR_MUXER_NOT_FOUND = -1481985528 AVERROR_OPTION_NOT_FOUND = -1414549496 AVERROR_PATCHWELCOME = -1163346256 AVERROR_PROTOCOL_NOT_FOUND = -1330794744 AVERROR_STREAM_NOT_FOUND = -1381258232 AVERROR_BUG2 = -541545794 AVERROR_UNKNOWN = -1313558101