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中右键创建分支

 

posted @ 2019-12-25 10:46  小虾米的java梦  阅读(236)  评论(0编辑  收藏  举报