Git 创建分支branch、修改branch提交代码、合并分支、等操作使用

为什么需要为版本库CVS、Git创建branch:

分支在团队中的作用:
    如一个项目现在是1.0版,团队同时进行1.1版和2.0版的开发,代码分歧大。
    需要用到分支来操作,不同的任务组在不同的分支上开发,互相之间不会影响。
    项目中添加一个新功能,一般不会直接在主分支上修改,需新建一个分支,在上面更改代码。
    要保证主线代码的完整性和可用性。

分支在GIT上的特点:
    一般项目的master分支是稳定版本,可以直接发布或者被项目之外的人使用。
    新特性和BUG修改都在不同的分支上进行开发和测试。
    GIT分支的另外一个重要特性就是可以合并不同软件仓库(fork)的分支。

    实例:
    开发团队有一个主软件仓库,开发者可以fork这个仓库,
    相当于克隆了一个私有的软件仓库,
    可以向主软件仓库提交merge request,
    这样新开发的特性就会被合并到主软件仓库的某个分支中。这种特性极大地推动了开源项目,
    自从GIT出现后,每个人都可能成为开源项目的贡献者,
    就是基于这种特性(请参照Github的pull request,和merge request是同一个东西)

这里写图片描述
GITEE:

Branch protection is to prevent members push code to important branch 
(such as master branch)
 1.Normal branches: project members 
 (developers privilege and above) may push(开发人员特权及其它授权人员,可以push)
 1.Protect branches: project administrator may push(项目管理员可以push1.Read-only branches: anyone can not push(只读权限)

列出本地已经存在的分支,并且在当前分支的前面加“*”号标记

shenhl:cmp user$ git branch
* dev
  master

列出远程分支

shenhl:cmp user$ git branch -r
  origin/HEAD -> origin/dev
  origin/dev
  origin/master

列出本地分支和远程分支

shenhl:cmp user$ git branch -a
* dev
  master
  remotes/origin/HEAD -> origin/dev
  remotes/origin/dev
  remotes/origin/master

git branch test, 创建本地分支test,然后通过git branch -a 查看分支小情况

shenhl:cmp user$ git branch test
shenhl:cmp user$ git branch -a
* dev
  master
  test
  remotes/origin/HEAD -> origin/dev
  remotes/origin/dev
  remotes/origin/master

删除本地分支

shenhl:cmp user$ git branch -d test
Deleted branch test (was 2233ab4).

删除远程分支

shenhl:cmp user$ git branch -d -r branchname
error: remote-tracking branch 'branchname' not found.

切换分支:

shenhl:cmp user$ git checkout dev
Already on 'dev'
Your branch is up to date with 'origin/dev'.

一个完整的流程演示:
dev 分支上修改内容后===到==合并到master分支上。

1.checkout 到dev分支

shenhl:cmp user$ git checkout dev
Already on 'dev'
Your branch is up to date with 'origin/dev'.

2.在dev分支节点上,修改代码或者创建内容
3.将修改的内容,提交到dev分支上

shenhl:cmp user$ git commit -a -m 'readme add new thing'
[dev b47059f] readme add new thing
 1 file changed, 1 insertion(+)

4.将修改的内容,push到dev分支上

shenhl:cmp user$ git push
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 309 bytes | 309.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: Powered by Gitee.com
To https://gitee.com/null_454_5218/cmp.git
   2233ab4..b47059f  dev -> dev

5.切换回master分支上,把dev分支上的内容合并到master上
注意:如果master分支上和dev分支上的修改的文件有冲突,要先解决冲突,再合并。

shenhl:cmp user$ git merge dev
Auto-merging README.md
Merge made by the 'recursive' strategy.
 README.md | 1 +
 1 file changed, 1 insertion(+)

猜你喜欢

转载自blog.csdn.net/shenhonglei1234/article/details/80510991