gitlab学习

一、clone项目的问题

解决git clone只有master分支的问题_mengxianglong123的博客-CSDN博客

我们在使用 git clone + 远程仓库地址将项目下载下来之后,倘若远程仓库有多个分支,我们会发现,使用git branch查看本地分支时,只有一个master分支

git branch

会出现:
* master


但是,大多时候我们是需要在其他分支进行工作的,所以我们需要将远程的其他分支拉下来才可以,首先,先使用git branch -a查看远程分支,那些以rmotes开头且为红色的都是远程分支,或者理解为这些分支是隐藏的

 git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/develop
  remotes/origin/feature
  remotes/origin/feature-im
  remotes/origin/master
  remotes/origin/newbranch

如果想要将远程分支与本地分支联系起来,则执行(以feature分支为例)

git checkout -b feature origin/feature  //在本地创建分支dev并切换到该分支

现在

git branch
会出现
* feature
  masterl
或者使用-t参数,它默认会在本地建立一个和远程分支名字一样的分支

git checkout -t origin/feature

接着还需要

git pull origin dev  //把gitLab上dev分支上的内容都拉取到本地了

二、gitlab的一些常用操作

取之前:先做Git config设定uer.nameuser.email

1.拉取代码

git clone xxx  //克隆代码

git branch -a  //查看所有分支 -r 远程 缺省 本地

//如果远程不存在origin/dev
git checkout -b dev //建立本地分支 -b并且切换到这条分支
git push origin dev // 建立远程仓库
git branch --set-upstream-to=origin/dev  //dev 和远程dev关联
//如果远程已经存在origin/dev
git checkout -b dev origin/dev  //创建本地分支dev,并且和远程origin/dev分支关联

git pull origin dev  //拉取dev分支代码

2、开始在dev开发

git checkout dev  //切换到dev分支进行开发
// 开发代码之后
// 第一个:如果功能开发完成了,可以合并主分支
//在add 和 commit后

//==注:如果先切主分支合并再推到远程也行,这样其实是先切到主分支,
// 合并本地主分支,再push到远程,不过这样要确定master是最新的(git pull),不然会冲突
git checkout dev  // 切换到dev远程分支
git push  # 提交dev分支到远程

git checkout master  // 切换到主分支
git merge dev  // 把dev分支的更改和master合并
git push  // 提交主分支代码远程

// 第二个:如果功能没有完成,可以直接推送
git push  // 提交到dev远程分支
//注意:在分支切换之前最好先commit全部的改变,除非你真的知道自己在做什么


//根据最新的Tag版本创建本地分支
git checkout -b dev2 最新tag
//推送本地分支到远程
git push --set-upstream origin dev2

测试时如果想删除分支

git push origin --delete dev // 删除远程dev分支

git checkout master // 切换到master分支 
git branch -d dev // 删除本地dev分支 

回退

//如果有错误的开发,未添加或者提交至本地库,需要回退
git checkout 文件名.后缀 // 会直接还原文件,需要add的话就git add 文件名.后缀
git checkout . //还原所有修改

// 如果有错误的开发已经添加/提交至本地库,需要回退
git log//查看log   --oneline以单行显示修改记录
git reset xxx(commitId) //回退到指定版本
git reset HEAD^ //回退到上一版
git reset –hard origin/master //回退到远程那版
git reset --hard xxx //回退到某个指定版本,回退前所有的修改丢掉

//git本地回退到指定版本后,直接push 会有错
git push --force //强制push
//如果出现You are not allowed to force push code to a protected branch on this project.
//让项目的管理员暂时在gitlab上把你要提交的分支设置为不受保护的分支

两个分支的合并

 

 选择好后点击compare branches and continue,下面那个合并后删除分支的最好还是先不选

不要勾选delete source branch 

好了,你已经无敌了(开个玩笑) 

假如分支合并的时候有冲突

其思想是:想要在本地操作后,检查无误,再push到远端

就是切换到合并分支,拉取最新的代码,再dev分支上输入命令进行合并,这时在本地就会有冲突文件,修改并检查无误后,再push到远端

三、经验

fetch和pull

fetch:会从远程拉取代码,然后通过merge命令,在本地合并

pull:会从远程拉取,但是你修改过的他不会更新,也不会说冲突

功能命令

git log   //查log。 --oneline
git status //查状态,看是不是什么没有commit或push

master回退

git log --oneline  //先查找要回退到的commit id
git pull //把branch更新到最在新,注意不会更新本地修改过的文件哦
git branch -m master z_dis_master_2020.0521_after_cec524ff //重命名master
git push origin z_dis_master_2020.0521_after_cec524ff  //备份分支push到远端
git checkout -b master cec524ff //创建本地master,回退到cec524ff(这个就是commit id)

之后去gitlab 把master保护和default去除,见下图,并且删除master

git push --set-upstream origin master  //把本地备份的master push到远端

又把master default和protected 给加上

找出回退版本Commit id(cec524ff)的后一个Commit id,假如是c906468e
git branch -a --contains c906468e // 根据找到的后一个Commit id查找所有影响到的Branch

告诉团队成员叫他们及时与修改后的保持一致

根据commit id查找 branch 

git branch --contains <Commit id>	查看本地仓库包含特定Commit id的Branch
git branch -r --contains <Commit id>	查看远端仓库包含特定Commit id的Branch
git branch -a --contains <Commit id>	查看所有(本地/远端)包含特定Commit id的Branch

命名参考

Feature Branch  特征分支
For WI registered JIRA:     < JIRA issue key>

     e.g: HL-1882

Comment of Commit change to feature branch
Start with [ <branch name> ]

      e.g[HL-1882], comment for Workitem.

Title for merge request
[ from branch ] -> <to branch>

      e.g[HL-1882] -> DEV       (ps: 如果Branch包含-Branch name用中括号括起来)

Comment of Commit for merge request
[ from branch ] -> <to branch>

      e.g[HL-1882] -> DEV

Project Main branch 工程主分支
<YYYYMM>_<project short name >, no space, combine with character,”.”,”_”
E.g : 202112_xxxx
Tags
For QAS transport: NO tag need, each merge request has a QAS version
For PRD: PRD_<YYYY.MMDD.HHMI>_<first 8 char of commit_ID >
E.g : PRD_2021.0506.1630_e2a0bf92
Discard Tag:z_dis_PRD _<YYYY.MMDD.HHMI>_<first 8 char of commit_ID >
E.g : z_dis_PRD_2021.0506.1630_e2a0bf92
Discarded Branch
z_dis _ <old branch name>_<YYYY.MMDD, date of rollback happen>_after_<first 8 char of commit_ID that discard after>
E.g z_dis_master_2020.0507_after_a8970ec3

             z_dis_DEV_ 2020.0507_after_a8970ec3

 这个JIRA Issue 先占个位

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值