美文网首页
实习日记2:git代码管理

实习日记2:git代码管理

作者: JLong | 来源:发表于2020-10-18 11:20 被阅读0次

mac:brew install git创建

常用命令:git常用命令及详解

一、程序员合并代码

2018年1月中旬,新浪程序员加班合并代码,年会抽中2000股票,因未到现场,损失人民币约77万,77万是该程序猿近3年的工资。

二、git基本知识与常用操作

特点:

分布式

本地分支与远程分支

本地分支是远程分支的完整拷贝

常用操作:

git init初始化

git clone克隆,如 git clonehttp://git.do1.com.cn/szzhdj/web.git

git pull拉取代码

git status查看工作区代码相对于暂存区的差别

git add .  将当前目录下修改的所有代码从工作区添加到暂存区 . 代表当前目录

git commit -m‘注释’ 将缓存区内容添加到本地仓库

git push origin xxx将本地版本库推送到远程服务器分支, origin是远程主机

git push -f 表示将目前自己本机的代码库推送到远端,并覆盖

git push -u   =》git push origin master

git push origin a_branch:b_branch将本地分支a_branch推送到远程分支b_branch(当本地分支名和远程分支名不一致的时候,需要这样指定推送)

git branch查看本地分支

git branch -d xxx 删除分支

git branch -D xxx强行删除分支

git branch -m oldbranch newbranch修改分支名称

git branch -M oldbranch newbranch强行修改分支名称为newbranch

git checkout xxx切换分支

git checkout -b xxx  以当前分支版本新建并切换到该分支

git checkout -b 本地分支名 origin/远程分支名拉取远程分支并切换到该分支

git merge xxx合并某分支

git log --author=“author” 可以查找某一个作者所有的提交

切换源

三、党建项目中应用

代码管理三个历程:

上半年使用svn,下半年开始使用git

有大概三个月时间代码都提交到主开发分支

后来需求增加,版本发布频率高,增加了一个devPlus分支

方案,增加一个中间分支devPlus

第一:可以让大家的不同的需求和任务提交的代码分支都能测试到。

第二:让版本发布更加可控。代码直接提交到develop和cdcwxgzh来发布,问题就是,如果我们提交的某个分支出了问题,比如说组织关系转接有问题,但其他人的分支都没问题,将导致版本不能如期发布,需等待全部问题修复才可发布。而有了devPlus,我们的develop是干净的,可以把其他分支合并到develop,忽略组织关系转接发版本。

如果是旧有bug,基于develop和cdcxgzh分支上改,改完之后合并到devPlus,发布测试验证,测试通过后,把代码提交到develop,因为测试通过后,如果不提交到develop,当devPlus无法发布的时候,那么你修改的bug也会漏掉。

举个栗子:

tapd上有一个组织关系转接的bug,ID1004444,还有一个任务【党群活动】增加报名信息采集功能。

改bug,

我会拉取develop,我本地会有个develop,我在我本地develop上修改,改好之后,我会合并到devPlus,验证通过后,我会把本地develop提交到远程develop。(注,bug改完之后应该尽快验证)

git完整操作:

自动检测

#在本地基于develop创建的分支拉取远程分支develop

git pull origin develop

#改完后,进行本地提交

git add .

git commit -m '修改组织关系转接xxxbug'

#代码合并到devPlus进行测试

git checkout devPlus # 先切换到devPlus

git pull origin devPlus  #拉取devPlus

git merge develop #执行合并

#代码提交到devPlus

git status #查看是否有冲突,看到git面板如果有红色的信息,那就是有冲突,需要自己手动解决

git add .

git commit -m 'merge develop'

git push origin devPlus

#测试通过后,我们还要把代码提交到develop,避免develop遗漏已修改好完的bug

git checkout devevlop # 先切换到devevlop

git pull origin devevlop #拉取devevlop

git add .

git commit -m '修改组织关系转接xxxbug' 

git push origin devevlop #提交到develop

开发新需求,

我会基于上周发版的分支新建一个分支,在本地建一个分支f_xiaohai_190321_dangqun,开发过程中,我会提交到远程分支f_xiaohai_190321_dangqun,开发完成的时候,我会把它合并到devPlus(切记不要把devPlus合并到f_xiaohai_190321_dangqun),测试。

到了版本发布的时候,如果devPlus的代码都没有问题,那么就直接发devPlus。如果有问题,f_xiaohai_190321_dangqun合并到develop,发develop。

git完整操作:

自动检测

#创建分支

git checkout -b f_xiaohai_190321_dangqun 

#开发后,进行本地提交

git add .

git commit -m '【党群活动】增加报名信息采集功能'

#提交到远程分支

git push origin f_xiaohai_190321_dangqun  

#代码合并到devPlus

git checkout devPlus # 先切换到devPlus

git pull origin devPlus  #拉取devPlus

git merge f_xiaohai_190321_dangqun #执行合并

#代码提交到devPlus

git status #查看是否有冲突,看到git面板如果有红色的信息,那就是有冲突,需要自己手动解决

git add .

git commit -m 'merge f_xiaohai_190321_dangqun'

git push origin devPlus

到这里,我们可以理解,devPlus分支承担了测试功能,develop的角色被用来改bug

为何不能直接合并到主开发分支develop

场景1:项目进度时间紧迫,导致代码质量无法保证迭代版本质量

场景2:项目需求迭代日期调整,导致该需求延期迭代

场景3:同一模块代码多人同时开发,导致无法确认是否存在冲突

命名规则

分支类型_开发者_时间_开发内容

①  feature分支:f_yourname_20170416_customLimit【新需求的分支】

②  bug分支:bug_yourname_20170416_customLimit【bug分支】

基础分支要基于最近生产版本创建,创建日期也是最近生产版本日期

四、恢复远程仓库上一个版本

有的时候,我们可能会误提交了一些不必要的代码,那么我们可以进行回退再提交

操作步骤:

1、git  pull origin xxx拉取要恢复的分支

2、执行恢复:git reset --hard HEAD^(回退到某个版本git reset --hard xxx)

3、强推恢复后的本地分支到远程分支:git push origin xxx:xxx --force【 --force强推命令应该慎用少用,因为有可能你在push的时候别人也在push,会把别人的代码清理掉】

回退某一个版本

git rever thttps://blog.csdn.net/yxlshk/article/details/79944535

五、发布记录

为了方便跟踪代码发布情况,现已在【测试环境】发布、构建工程的同时,生成了本次构建的提交记录,可通过页面查看:

后端-接口服务:http://djdev.qiweioa.cn/publish/changelogs

前端-后台管理:http://djdev.qiweioa.cn/manager/changelogs.html

前端-公众号:http://djdev.qiweioa.cn/wxgzh/changelogs.html

前端-门户:http://djdev.qiweioa.cn/changelogs.html

前端-政务微信:http://djdev.qiweioa.cn/zwwx/changelogs.html

后续,在出现发布完没看到想要的效果,可以通过此排查自己是否push了代码,或者构建的分支是否正确。

六、结语

事实上,我们可能还会遇到更复杂的情况。

我们要牢记:

develop要保持干净,没有通过验证的代码不能推到develop。

新功能分支不要让devPlus污染,我们的新功能分支应该是合并到devPlus,而不是devPlus合并我们的新功能分支。

开发的时候明白自己是在哪条分支开发。

七:git代码图形管理工具

SourceTree

八:问题

解决git pull/push每次都需要输入密码问题

https://blog.csdn.net/lxhjh/article/details/81169918

九、速查表

git config 常用配置选项

git config -e 编辑配置文件git config --local -e 编辑仓库级别配置文件

git config --global -e 编辑用户级别配置文件

git config --system -e 编辑系统级别配置文件

git config 添加配置项目git config --global user.email “you@example.com”

git config --global user.name “Your Name”

十、git提交信息规范

http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html

忽略git pre

https://blog.csdn.net/qq_42833001/article/details/88718349

git commit --no-verify 

问题:

假如,test2分支修改了 一处地方为2;test3分支修改了一处地方为3,test2合并到 master,test3合并到master, 这时候master为3, 那么再次合并test2到master, master这时候是什么

答案是:3

原因:

git是按时间来的,就是 时间后面的覆盖时间前面的,以后面的为准

test2是在test3之前修改

所以以test3代码为准

相关文章

  • 实习日记2:git代码管理

    mac:brew install git创建 常用命令:git常用命令及详解[https://blog.csdn....

  • GIt代码管理

    GIt代码管理 Git-分布式代码管理 Svn集中式代码管理 1.Git安装 直接next就可以了 2.Git命令...

  • GIT

    开放功能代码管理流程 1 切换到主分支 git checkout master 2 更新代码 git pull m...

  • 代码发布到cocoapods

    发布 Git 管理的代码至Cocoapods 1. 创建.podspec文件 Git 管理的代码都会有 .git ...

  • 一、环境介绍: 1、开发语言:Java 2、项目代码管理:Git 3、代码编译和jar包管理:maven 4、部署...

  • 代码管理

    代码管理 用到工具 1.git 2.GitLab // 3.Review Board// 操作步骤 使用git提交...

  • pycharm中GIT的使用

    Git(源代码管理工具) 什么是Git Git是一个代码管理工具, 可以对代码进行版本管理、多人协作等 为什么使用...

  • jenkins_git代码管理

    一,Jenkins介绍 二,代码管理 ⦁ GitLab私有代码仓库 1,GITLab介绍 2,GIT 安装 1...

  • 04.创建第一个仓库并配置local用户信息

    两种情景:1.把已有的项目代码纳入git管理cd 项目代码所在的文件git init 2.新建的项目直接用于git...

  • git环境安装

    git是帮助我们管理代码的好帮手,我们可以通过git命令上传代码到代码管理仓库,或者从代码管理仓库中下载代码,等等...

网友评论

      本文标题:实习日记2:git代码管理

      本文链接:https://www.haomeiwen.com/subject/kkbcrctx.html