关于git 前端规范

204 阅读5分钟

发布正式服后,打版本主流程(7步)

针对自己负责的端,在第二天无bug后做版本维护,具体操作如下:

 

1.检查本地是否有代码未提交 (询问同组开发人员是否都提交)

git status

 

2.更新最新代码 简单review合并内容

git pull

清除代码log,检查代码是否有临时代码,是否有调试代码,代码完整性,独立性

 

 

3.跟产品确认当前版本号 如:v4.10.0,并修改当前代码版本号,并提交

git branch -a (检查版本号是否有重复)

npm version v4.10.0 (此步骤效果相当于 修改package,package.lock版本号,并add,commit)

git push (直接提交版本号commit)

 

 

4.新建release版本或新建tag

如果只是小功能迭代,可以不新建版本 ,只建个tag即可

bug修复不需要建版本,如果是重要程度的公共基础bug修复可以考虑打tag

新建release版本

git checkout -b release/v4.10.0

git push --set-upstream origin release/v4.10.0

新建tag

git tag -a v4.10.0 -m "本次版本的大致内容总结"

如:git tag -a v4.10.0 -m "gov农场详情页对接第三方设备,移除零售价等小修改"

git push origin v4.10.0

 

5.合并代码到主分支 (包括develop,master等),有其他正在开发分支也需合并(最好群里询问下)

 

git checkout develop //先切到想合并的分支 

git pull //拉一下分支代码

git merge release/v4.10.0 --no-ff -m "合并v4.10.0代码,合并的迭代简短描述"

merge后 注意是否有冲突,谨慎处理,不是自己的代码一定要更书写者一起商讨!!!

(取消merge git merge --abort)

git push

 

代码一定要合并到 develop,master, 正在开发的其他分支上(具体哪些分支可群询问,某些特殊分支不需要合并除外)

重点注意 群询问当前端是否有其他正开发分支,一定要注意合并上去!!!

 

 

6.删除无用的临时开发分支 如:feature/** 或develop/***分支(本地和远程)

git branch --delete feature/v4.4.0 //删除本地分支 

git push origin --delete feature/v4.4.0  //删除远程分支

删除分支要慎重,不要删除了 最好复制分支名

 

7.合并代码后前端开发群里,通知下开发分支同学注意更新

并部署到对应开发分支,并通知对应后端负责人

 

 

各组分支名称 规则

一组  feature/shanghai-迭代号   feature/shanghai-49

二组 feature/jingyang-迭代号

三组 feature/jingfeng-迭代号

物联网 feature/wulianwang-迭代号

 

发布后的bug修改 直接在release/v4.38.0 ,

改完bug后,一定注意合并到主分支和开发分支!!!

改完bug后,一定注意合并到主分支和开发分支!!!

改完bug后,一定注意合并到主分支和开发分支!!!

 

 

 

 

 

 

 

git 版本原则

master/main和develop 是长期维护主分支 不可删除  

haier_** 分支不可以删

不是自己新建的分支不可以删

新的版本迭代 要从develop 基础上新建分支开发,并确认版本号

git checkout -b feature/v4.11.0

发布正式服后 又发现了新bug

如果还没有打版本,可直接在feature/v4.10.0开发分支上开发,改完后打版本等操作

如果已经打了版本了如:release/v4.10.0 ,直接在这个版本上开发,注意开发完合并 到 develop,master 

 

 

 

其他技巧

 

git reset --hard origin feature/v4.10.0 强制更新到线上某版本

合并其他分支的commit git cherry-pick -n commitID (把commit添加到 暂存区,工作区)

 

push提交后 想撤销上一次提交

reset 直接撤销不留下上一次提交记录 (撤销完就真的找不到了 有需要最好本地复制一份)

git reset --hard HEAD^ (第二次 HEAD~2 ...)

git push origin HEAD --force (强制push)

 

revert 撤销还留下上一次提交记录,且还会留下撤销记录

git revert HEAD                  撤销前一次 commit

 git revert HEAD^               撤销前前一次 commit

 git revert commitId

 

git revert 和 git reset的区别 

  1. git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit。 

  2. 在回滚这一操作上看,效果差不多。但是在日后继续merge以前的老版本时有区别。因为git revert是用一次逆向的commit“中和”之前的提交,因此日后合并老的branch时,导致这部分改变不会再次出现,但是git reset是之间把某些commit在某个branch上删除,因而和老的branch再次merge时,这些被回滚的commit应该还会被引入。 

  3. git reset 是把HEAD向后移动了一下,而git revert是HEAD继续前进,只是新的commit的内容和要revert的内容正好相反,能够抵消要被revert的内容。

 

撤销当前未push的commit,回到暂存区状态,工作区代码保留

git reset --soft HEAD^

 

 

手头没开发完 不想提交 缓存下代码

存 git stash save "save message"

恢复

git stash list 先看下想恢复的序号

git stash apply stash@{1} //应用缓存 (暂存记录还保留着)

git stash pop stash@{1} //应用缓存 且删除记录

(如果想恢复的是最新的 git stash pop)

git stash clear :删除所有缓存的

 

关于tag 其他操作

git tag //查看tag

git tag -a tagName -m "tag说明" //在某个版本上打一个tag

git tag tagName c809ddbf8 //在某个commit 上打tag

git push origin tagName //本地tag推送到线上

git tag -d tagName //本地删除tag

git push origin :refs/tags/tagName //删除线上tag (本地tag删除了,再执行该句)

 

如果别人把你的代码覆盖了怎么办

1.备份全部代码

2..找到合并前commit,并切过去 git reset --hard commitId 然后新建分支

3.在新分支里把 备份代码覆盖上来,逐一确认,哪些可修改,改好后提交,拷贝整改后代码

4.切回开发分支,把整改后代码覆盖上去,并提交,完成