实习时学到的git使用操作规范

实习时组里的git使用规范:

开发流程:

1、 独立开发新功能,对其他业务不产生影响

(1) 从master拉代码到个人开发分支,比如个人分支为:dev_xjy

(2) 开发测试完成后,从master再拉一次代码,如有冲突在自己的开发分支解决

(3) 合并自己开发分支到master

(4) 从release分支merge到master

(5) 集成测试通过后, 用compare工具比较master和release的代码差异,确定差异代码都为需要发布内容

(6) 升级版本,打tag,把master分支merge到release分支

整体的大致使用过程为:

所以基本的操作流程就是:

1.自己新建一个自己的分支,如命名:dev_xjy

#创建自己的分支
git branch 分支名

#查看本地分支
git branch
#查看远程分支
git branch -r
#查看所有分支,当分支较多显示不完时,此时按q即可退出
git branch -a

命令参考:https://www.cnblogs.com/mmykdbc/p/9076063.html

命令参考:https://blog.csdn.net/riemann_/article/details/88984296

命令参考:https://blog.csdn.net/weixin_39634878/article/details/111216034

2.将master分支代码拉取到dev_xjy分支进行开发
将远程仓库指定分支拉取到本地:

git clone -b 分支名 仓库地址

https://www.cnblogs.com/ants_double/p/11088882.html

https://www.cnblogs.com/feipeng8848/p/12033802.html

#根据已有远程分支创建一个本地分支
git checkout -b 本地新分支名 origin/远程分支名

执行完后,命令行会提示:

Switched to a new branch 'dev_xuanjunyu' 
Branch 'dev_xuanjunyu' set up to track remote branch 'master' from 'origin'.

并且我们查看idea右下角的分支时,会看到本地分支的后方说origin/master。

那么Branch 'dev_xuanjunyu' set up to track remote branch 'master' from 'origin'含义就是:本地dev_xuanjunyu分支与远程的master分支是建立联系的,如果我们提交代码的话,会直接提交到master。而实际上我们需要的是将dev_xuanjunyu与远程的origin/dev_xuanjunyu分支建立联系。所以需要执行下述操作:https://blog.csdn.net/weixin_43632687/article/details/104790595

即执行:

#设置本地分支追踪远程分支
git push --set-upstream origin <new_branch>
#也就是
git push --set-upstream origin dev_xuanjunyu

设置好后,控制台会显示:Branch 'dev_xuanjunyu' set up to track remote branch 'dev_xuanjunyu' from 'origin'.

即操作成功!

此时查看idea右下角的分支时,会看到本地分支的后方说origin/dev_xuanjunyu

当设定好track分支后,比如本地dev_xuanjunyu分支track远程的origin/dev_xuanjunyu分支,那么提交代码可以直接通过命令:git push,拉取代码直接通过:git pull

否则的话,拉取分支需要通过如下命令:

#比如将远程master分支拉取到本地dev_xuanjunyu分支,切换至本地dev_xuanjunyu分支,然后执行下述命令:
git pull origin master
#或者
git pull origin/master

#上述内容同git push

3.开发完成后你可以发布dev_xjy分支的代码到fat环境进行测试

4.测试若没问题后,再拉取一次master分支,因为在你开发的过程中master分支可能有代码更新,然后再将你自己的dev_xjy分支合并到master分支即可

如何将dev_xuanjunyu分支的代码合并到remote的master分支,即origin/master分支?

5.之后若要发布的话,将master分支合并到Release_CD分支进行最终发布即可!


删除一个本地分支:

#先切换到到其他分支,然后执行下述命令
git branch -d [想要删除的分支名称]

本地dev分支拉取远端master分支的内容

记住,本地dev分支拉取远端master分支的内容时,应该执行的步骤是:
1.本地切换到master分支,然后执行拉取操作,以更新本地master分支

#位于本地master分支执行下述命令
git pull

2.本地切换到dev分支,再执行从本地master分支合并到本地dev分支的操作:

#位于本地dev分支执行下述命令
git merge master

上述过程可以实现将远程master分支更新到本地dev分支的操作!

值得注意的是:在merge master分支之前,最好先将dev分支内的修改提交,否则merge的时候会提示:Your local changes to the following files would be overwritten by merge:xxxx.java
Please commit your changes or stash them before you merge.

参考:将远程master分支最新修改合并到本地dev分支

并且,当你再次从本地dev分支提交代码到origin/dev分支时,会将从master分支合并过来的更新的内容也一同提交到你的origin/dev分支上去。

清空备份文件

当在项目中进行了某些操作之后,比如修改pom文件的版本号,此时会产生相应的backup文件以保存原本的版本号,而又不想把这些backup文件提交到远端仓库,所以可以使用以下命令删除掉这些不用commit的文件:

# -f指的是force,即强制删除
git clean -f

将本地dev分支合并到远程的master分支

下述操作均在master分支进行:

# 1.将dev分支的代码合并到master上
git merge dev

# 2.将本地master分支的更改推送到远程的master分支上
git push origin master

执行完以上命令,此时dev分支与master分支的代码已同步。

merge分支的时候冲突解决方案

比如dev分支在merge master分支的时候,可能有冲突,如果你事先不知道有冲突,并且使用命令行merge的:

#dev分支下执行下述命令
git merge master

那么之后命令行中可能会提示你需要先解决掉冲突才让你merge,这个时候,你可以使用idea的右下侧分支项中的一个选项,就是”中断merge操作“,之后就不要再用命令行merge了。

推荐是用idea自带的merge操作:
在这里插入图片描述

在这里插入图片描述
因为使用idea自带的merge操作如果有冲突的话,它会把冲突的地方给你展现出来,然后让你选你是接受你自己分支的还是merge进来的新分支的。

本地修改不提交的情况下拉取远程分支新更新内容

简答来说就是执行下述的两条命令:git stashgit stash pop
1.执行完git stash后首先将本地修改内容添加入栈。
2.执行完git stash后就可以通过执行git pull命令来拉取远程分支新更新内容了
3.拉取远程分支新更新内容后,需要从栈中弹出之前修改过的内容,执行git stash pop命令即可
4.执行git stash pop命令后需要手动解决冲突问题!

具体可参考:值得反复观看的文章中的第4篇

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.为什么要写这个文档 本文是结合项目使用git的经验并参考《Git权威指南.pdf》总结出来的。《Git权威指南.pdf》全强大很细,但有些东西太广太细,不适合快速上手。本文档适合在项目实践想快速上手git的新手。先看本文档基本上手,在实际使用遇到什么问题在深入研究《Git权威指南.pdf》或者google,这种学习规划的效率应该是最好的。欢迎更正和补充。 2.GIT和SVN、CVS的区别 版本库分两种 集式版本库:CVS和SVN 分布式版本库:GIT轻量级,高性能 集式版本库的缺点:代码集放在一台服务器上,必须有网络才能连接服务器。 GIT的最大优势:每个人都会在本地有自己的版本库,而不是连到服务器公共的版本库。所有的历史记录都会存储在本地版本库,向版本库提交代码无需连接远程版本库,而是记录在本地版本库。 用git push可以把修改上传到远程的主版本库。 其实SVN的本地历史比较也就相当于本地版本库,只是功能没有那么强大,只能比较单个文件的本地历史记录。 在SVN版本库在服2.3.务器上,在GIT,版本库不在服务器上,而在本地workspace的.git目录。 3.为什么要使用git 本次项目的版本库主要在本地修改,但也可能在其他地区进行merge等操作,所以用分布式版本管理工具git。 (基于项目版本管理经验修改,如果意见,请指正,谢谢!)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值