git之在远程开发分支上开发

来源:互联网 发布:绘画 知乎 编辑:程序博客网 时间:2024/06/18 15:12

gitlab中对master分支是设定为protected的,对于developer身份的成员需要单独拉一个分支让其开发,等到稳定后来merge到master分支中,但是这个时候我们如何在本地根据developer分支来开发,又如何pull developer分支到本地,在push代码到developer分支呢?

创建developer分支

这里写图片描述

这里注意如果你远程分支删除后,你执行git branch -a还是会存在的,这个时候你执行一下git fetch -p就可以了。

将远程代码clone到本地

拉到本地后,我们的分支信息如下:

58deMacBook-Pro:ResponseTimeTool wuxian$ git branch -a* master  remotes/origin/developer  remotes/origin/master

这个时候我们是在主分支master开发的,所有的git pull和git push都是在master分支上操作的。但是我们不想这样做。

切换到developer分支上开发

58deMacBook-Pro:ResponseTimeTool wuxian$ git checkout -b local_developer remotes/origin/developerBranch local_developer set up to track remote branch developer from origin.Switched to a new branch 'local_developer'

这个时候我们已经切换到local_developer分支中开发,且该分支是由远程分支developer生成的。

git pull

58deMacBook-Pro:ResponseTimeTool wuxian$ git pullremote: Counting objects: 3, done.remote: Compressing objects: 100% (3/3), done.remote: Total 3 (delta 2), reused 0 (delta 0)Unpacking objects: 100% (3/3), done.From    96978fb..8a02689  developer  -> origin/developerUpdating 96978fb..8a02689Fast-forward build.gradle | 1 + 1 file changed, 1 insertion(+)

我在gitlab的页面上developer分支上手动了修改某处,然后pull,显示是同developer拉取下来了,说明我们的git pull是成功的。

git push

但是我们执行git push就出问题了:

58deMacBook-Pro:ResponseTimeTool wuxian$ git pushTotal 0 (delta 0), reused 0 (delta 0)To git@gitlab.58corp.com:com.wuba.wuxian.autotest/ResponseTimeTool.git * [new branch]      local_developer -> local_developer

它会默认生成一个新的分支,名字和我本地分支一样,这是不正确的,我们要push到developer分支上的。

我们需要显示的执行push到的分支:

58deMacBook-Pro:ResponseTimeTool wuxian$ git push origin local_developer:developerCounting objects: 1, done.Writing objects: 100% (1/1), 175 bytes | 0 bytes/s, done.Total 1 (delta 0), reused 0 (delta 0)To    8a02689..1e27554  local_developer -> developer

这样就ok了。

0 0
原创粉丝点击