git分支建立的规范化流程?

在我们开发项目的过程中,尤其是在企业中多人开发,不同的开发者负责不同的模块,所以我们要创建个人的分支。但是该如何创建个人的分支呢?分支和主分支应该如何关联呢?这些问题困扰了我很久,目前大概清楚一些规范流程,所以记录一下。


一、gitlab如何创建项目?

1. 首先在gitlab上创建项目,例如:tradeprome2

2.  与后台开发人员沟通,前端和后台分别创建两个项目分组。

 3. 当前项目的主分支是master,我们需要创建分支。


 二、git如何创建分支?

注:需要说明的是,在开发项目的过程中。为了避免代码有冲突以及个人的代码对整个项目的代码造成影响,所以我们需要创建几个必要的分支,以此来更好的管理我们的项目。

1. 首先,我们需要创建一个 测试分支dev;它的作用是我们在开发的过程中,需要提交至个人分支到至dev分支上。如果我们的代码没有任何问题,由管理员统一将dev上的代码同步到master主分支上。最终,我们上线的代码就是master分支的代码。因此,master分支上的代码应该与dev上的代码保持一致。

2. 其次,我们需要创建一个开发分支,开发分支的命名方式为:feature-***(模块或功能),例如:feature-login.  而我们feature上的代码都是从dev分支上拉取下来的,同样最终我们feature分支上的代码提交至dev分支。然后在删除feature-***  的分支即可。

3. 最终,由管理员统一将dev上的代码合并到master主分支上。

注意:如果我们在上线后,发现有bug需要进行改正,则一定要拉取master的代码,因为主分支上的代码是最新的。

整体的流程如图所示:


  三、git如何通过命令行创建分支流程?

注:当前在项目中,默认自己所在master下。

git branch    查看输入这条命令检查是否创建成功,前面的*代表的是当前你所在的工作分支。

(1) 在本地新建一个分支    git branch dev

(2) 切换到新建的分支    git checkout dev

(3) 将新的分支发布在gitlab上(远程分支)    git push origin dev

(4) 把本地的分支与远程的分支做关联    git branch --set-upstream-to=origin/dev

(5) 从远程分支上获取最新版本并merge(合并)到本地    git pull  


注:如果需要创建feature-**分支,则需要在deb分支下进行创建。

步骤如下:
(1) 首先git branch 查看当前分支是否在dev分支下;

(2) 如果dev前有*,表示当前的工作分支为dev,否则 git checkout dev 切换到dev分支下;

(3) 然后在此分支下,通过git branch feature-**,来创建开发分支,那么开发分支就继承了dev分支的代码;

(4) 其他步骤如上所示;

 四、git常用的删除分支命令?

git branch -d newBranch    在本地删除一个分支

git push origin :newBranch/git push origin --delete newBranch    在gitlab远程删除一个分支

注意:删除远程分支后,如果有对应的本地分支,本地分支并不会同步删除!需要在删除本地分支。

git branch -a    查看所有分支

git branch -r    查看远程分支

git branch -m old-branch new-branch    修改分支名称

常见问题:

1. 解决git远程分支已经删除本地还存在的办法?

在做项目的过程中发现,我将远程分支直接删除了,本地的对应分支也删除了。但是我用 git branch -a 还可以看到远程存在此分支。

$ git branch -a  
  master  
* dev 
  remotes/origin/HEAD -> origin/master  
  remotes/origin/master  
  remotes/origin/feature-login 
  remotes/origin/dev   

在此打印结果中,remotes/origin/feature-login 已经被我删除了,但是仍然存在。

解决办法:

1. 使用 git remote show origin 查看remote地址,远程分支,还有本地分支与之相对应关系等信息。

$ git remote show origin  
warning: redirecting to http://gitlab.xcar.com.cn/product_library/newcar-api.git/  
* remote origin  
  Fetch URL: http://gitlab.xcar.com.cn/product_library/newcar-api  
  Push  URL: http://gitlab.xcar.com.cn/product_library/newcar-api  
  HEAD branch: master  
  Remote branches:  
    gao.yan                         new (next fetch will store in remotes/origin)  
    master                             tracked  
    refs/remotes/origin/feature-login stale (use ‘git remote prune’ to remove)  
    dev                               tracked  
  Local branches configured for ‘git pull’:  
    master merges with remote master  
    dev   merges with remote dev  
  Local refs configured for ‘git push’:  
    master pushes to master (fast-forwardable)  
    test   pushes to dev   (up to date)  

2. 根据提示可以看到远程的分支已经不存在了,并且让使用(use ‘git remote prune’ to remove)此命令

git remote prune  origin    移除这个分支(刷新本地仓库与远程仓库的保持这些改动的同步)

$ git remote prune origin  
warning: redirecting to http://gitlab.xcar.com.cn/product_library/newcar-api.git/  
Pruning origin  
URL: http://gitlab.xcar.com.cn/product_library/newcar-api  
 * [pruned] origin/feature-login  

3. 执行完命令后在次用 git branch -a 查看,可以看到已经被删除 (git branch -r 只查看远程的分支)

$ git branch -a  
  master  
* dev  
  remotes/origin/HEAD -> origin/master  
  remotes/origin/master  
  remotes/origin/dev  

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值