zoukankan      html  css  js  c++  java
  • git的版本管理

    一、git分支合并

    (1)运行终端,执行命令:git branch,会列出所有branch,并在当前分支会有 “*”标记。

    (2)切换到要操作的分支,比如:有两个分支almond 和release-2.0.3,现在想把release-2.0.3的代码合并到almond上。执行命令:git checkout almond.

     (3)合并代码。执行代码:git merge release-2.0.3.有冲突就解决冲突,没有就继续。

     (4)将代码推送到github服务器上。执行命令:git push origin almond.

    二、git 新建分支获取远程分支代码

    1.本地新建分支,对应远程分支,如:

    git branch release-2.1.0 -t origin/release-v2.1.0

    该命令行会新建本地分支release-2.1.0,并且追踪远程分支release-v2.1.0。

    2.可以拉取远程分支代码。

    git pull git pull origin release-v2.1.0

    三.git 分支打tag

    1.列出git上现有的所有标签。执行命令:git tag

    2.为当前分支创建标签。执行命令:git tag -a v2.0.3 -m "version 2.0.3"

    3.新建的tag 要提交到服务器。

    通常的git push不会将标签对象提交到git服务器,我们需要进行显式的操作:
    $ git push origin v2.0.3 # 将v0.1.2标签提交到git服务器 
    $ git push origin --tags # 将本地所有标签一次性提交到git服务器

    四、idea中版本回退

    https://blog.csdn.net/gomeplus/article/details/78241070

    工作中遇到git远程仓库需要回退到历史版本的问题,根据网上的搜索结果结合自己的实践,整理了如下步骤:

    1. 在“Show History”中找到当前版本(取名:newVersion)和想要回退到的版本(oldVersion)


    2. 选择newVersion和oldVersion点击“Copy Revision Number”复制两个版本的版本号:
    newVersion:2746f428a3d3d000bd1b0e886ef8167e1f73ec9c
    oldVersion :6bc5691cbe7304cb185b70fbc0dd975c7de86e8a


    3. 右击项目依次选中:Git->Repository->Reset HEAD


    4. 选中Reset Type:*Hard, To Commit:6bc5691cbe7304cb185b70fbc0dd975c7de86e8a;然后点击Reset按钮*


    5. 这时本地代码已经回退到oldVersion,这时候如果直接push到远程仓库,会提示版本冲突,点击“cancel”取消。


    6. 下面有两种解决冲突的方法
    方法一 :不解决,直接强制提交:
    a. 打开Terminal,切换到项目所在目录
    b. 执行:spring-mvc $git push -f


    方法二:
    a. 右击项目依次选中:Git->Repository->Reset HEAD
    b. 选中Reset Type:Mixed, To Commit:2746f428a3d3d000bd1b0e886ef8167e1f73ec9c;然后点击Reset按钮

    c. 这时你会发现,最新版本有回到newVersion。但是代码还是oldVersion的代码,这时候重push到远程仓库就不会版本冲突了
    7. 方法一vs方法二
    方法一会将回退的提交记录抹点,而方法二会保留
    8. Done
    ———               

    如何在idea中打tag:

    在intellij 中对分支打tag操作。
     
    为什么要打tag?
     
        tag中文的意思是标签的意思,生活中的标签有很多,比如产品的合格标签,赠品标签。
        而在开发过程中,可能会有这样的问题出现,1  一个版本开发结束后,进行分支合并,在master上进行测试 上线,上线后发现有问题需要急需退回到上一个版本,这就要求我们自己手动在服务器上备份很多的war或者备份很多的文件夹。2  如果一般的修改在没有拉取新分支,而是在master上直接修改的话,修改后上线有问题,可以及时的拉取退回。3  如果在发版的时候忘记了备份war或者备份文件夹,及时代码进行回滚,代码回滚会造成一部分提交无效。所以,打tag很必要。
     
    git tag和git branches区别?
     
        查知乎上说,tag就像里程碑标志的一个点,branch是一个新的征程的一条线;tag 是静态的,而branch要往前走;稳定版本备份用tag,新功能开发多人用branch,开发完之后再merge到master上。
    tag是一个只读的branch。
     
    打tag git命令
     
        $ git tag  //列出git中现有的所有标签
        $ git tag -l v1.4.2.*  //按照字母表顺序给出tag
        v1.4.2.1
        v1.4.2.2
     
        $ git tag -a v1.4 -m ‘version 1.4′  //创建标签, -a 加标签,-m  加标签注释。
        $ git tag v1.4-lw                         //创建轻量级标签,不用-a,-m等参数
     
        $ git show v1.4   //git show 命令查看相应标签的版本信息,并连同显示打标签时的提交对象
     
        $ git tag -a v1.2 9fceb02        //为已提交的信息贴上标签,为校验码为9fceb02*的版本贴上标签。
     
        $ git push --tags  //如果上传到服务器时不能上传tag,可加上--tags命令。
     
    intellij中打tag
     
     
     步骤:
        1   You can create a tag in VCS -> Git -> Tag... menu. (打开VCS中的git --Tag 菜单)
     
        commit 窗口:如果不填写默认是最新的head代码.
        可以填写一个version的校验码:
     
     
        2  Then open the push dialog with VCS -> Git -> Push and activate the checkbox "Push Tags".
    在点击create tag 之后, git push (或者ctrl+shif +k键) 
     
        选择push tags , 可以push 当前分支的tag , 也可以选择push 全部分支的tag。
     
     
    怎样拉取tag的代码
        checkout tag or revision,来检出代码。
     
     
    方法二:在log中打tag:

    intellij idea 版本为2017.2.6

    进入Version Control-->log

    1.在之前版本中,右键,新建标签

    2.输入标签名称,建议输入版本号的方式

    3.push标签

    由于不是在当前最新版本打入的标签,push时需要选择push tags (all),不然不能push

    在GitLab标签中就可以看到刚才push的标签

    在idea的log中也可以看到刚才的标签或者搜索标签

    4.删除标签

    在idea中由于没有找到删除标签的功能,所以只能采用命令行的方式进行

    进入工程目录-->右键,Git Bash Here进入命令窗口

    删除本地标签命令
    git tag -d v1.0.1
    删除远程标签命令
    git push origin :refs/tags/v1.0.1

    5.根据标签创建分支

    标签只是记录的一个点,需要需要针对这个点的代码修改就需要转换成分支,因此标签可以起到备份的作用

    转换标签为分支有两种方式

    1.右下角搜索标签

    2.在log中右键创建分支

  • 相关阅读:
    C#RSA的研究,C#、Java互通
    .NetCore接入Log4Net
    asp.net core 5.0 使用log4net
    C# 根据出生年月 计算天数/计算X岁X月X天字符串
    DateTime? 转对象出错的问题
    WPF新的窗口返回值的方式
    C# Post
    数据库跨服务器更新表内容
    sql server 初学乱记
    sql server 2008/k3 cloud 安装踩雷
  • 原文地址:https://www.cnblogs.com/fengli9998/p/12095411.html
Copyright © 2011-2022 走看看