创建远程分支
-
新建一个本地分支并切换到本地分支
$ git checkout -b feature-test -
查看分支状态
$ git branch
*feature-test
master星号(*)表示当前所在分支。
-
把本地分支push到远程服务器,远程分支与本地分支同名:
$ git push origin feature-test:feature-test
使用git branch -a查看所有分支,会看到remotes/origin/feature-test这个远程分支,则远程分支成功。 -
删除远程分支
方式一:$ git push origin :feature-test
方式二:$ git push origin --delete feature-test
git常用命令的意义
-
add
把本地的代码添加到本地仓库中 -
commit
把本地的代码提交到本地仓库中 -
checkout -b
创建分支并切换分支 -
git branch
查看本地分支 -
git branch -a
查看所有分支 -
revert
在原来的分支时间线上,继续追加一个新的版本。就想当于新的一次提交。 -
reset
直接回退到某个具体的版本,之后的版本信息在某个具体分支线上就不存在了。 -
pull
把远程仓库的代码拉取到本地仓库中 -
push
把本地的代码推到远程仓库中
开发环境分支规范
- master分支
- dev分支
- prod分支
- feature分支
- bug分支
描述一个合并分支的大体情况
-
环境
本地功能分支对应于远程的功能分支。
远程功能分支
远程master分支 -
目的
把本地功能分支开发好的代码合并到master分支上。 -
理解
本地功能分支有什么?
本地仓库怎么与本地仓库关联上的?
add 和 commit 命令本地功能分支扮演了什么角色?
它是远程功能分支和远程master合并的桥梁。本地功能分支,与远程功能分支,通过什么操作关联关系?
pull 和 push -
操作过程
1,我先把我本地功能分支,add到本地仓库,然后commit。
2,然后我再pull远程的代码下,但是由于属于自己的分支,这个pull可以不用操作。直接push到远程仓库。
3,这个时候,我并不知道,我的同事是否把他们的功能合并到master上了?
4,目前的现状就是,我本地的功能分支与远程我的功能分支是一一对应的,他们的内容完全一致。然后,我并不知道远程的master分支上的内容,我的同事是否合并过?
5,虽然,我的目的是合并我的分支内容到master分支上,但是这个过程中我需要考虑同事是否合并过内容?
6,同理,再合并自己的内容到远程master分支的时候,我需要先pull 远程master分支的内容到本地功能分支,然后我再push到我远程上的功能分支。这个时候我本地功能分支与我远程功能分支内容一模一样。
7,然后,我再切换到本地master分支,还是先pull远程master分支的内容到本地。然后,我合并我远程功能分支的内容到我本地master分支。然后我再push我本地的master分支到远程master分支上去。完成合并。 -
注意事项
1, 理解四个分支的关系,本地功能分支,远程功能分支,本地master分支,远程master分支。2, 本地与远程通过什么命令关联上的? add commit pull push
3, 目的是远程的两个分支的内容需要合并。
4, 桥梁就是我本地的分支,本地master对应远程master;本地功能分支对应远程功能分支。
5, 最容易忘记的就是我本地切换分支的时候,我忘记pull远程的分支内容了。
6, 时刻记住的两个命令:revert reset