Git使用规范Git常用命令

news/2024/11/26 5:28:22/

Git使用规范&&Git常用命令

分支规范

master分支

  • master的分支HEAD和历史commit均是是稳定、可发布的状态。
  • master分支的每个commit都需要打tag,如v1.0、v1.1、v1.2、v2.0等。
  • 仅能从test分支和hotfix分支合并过来。
    hotfix的合并必须是通过代码审核和测试验证的。
    从test合并时,既要达到测试认可的质量状态和产品认可的功能状态。
  • master分支只有组长和负责人有权限进行提交代码

dev分支

  • 主开发分支 , 基于master分支克隆,理论上讲dev分支代码与master分支保持一致

feature分支

  • 当代码改动范围较大,可以从dev分支切出一个feature分支进行开发。
    如进行代码重构时,切一个feature/feature_security分支。
  • 可以同时存在多个feature分支
  • feature分支迭代中不可从dev分支merge新的改动。
  • 若对应feature仅单人负责开发,无需协同开发时,应只存在于本地仓库,不push到remote仓库。
  • feature 分支理论上讲是需求开发之前组长来拉取,分支命名规范为:feature/feature_功能名 ,举例安全改造2.0开发分支为:feature/feature_security2

test分支(仅组长进行合并代码)

  • 测试分支 , 基于feature分支合并到dev之后 ,提测阶段,修复bug可以直接在此分支上进行修改也可以直接由feature分支直接合并到test分支
  • test分支提测时可由组长进行合并
  • codereview的时候可以将test与master分支进行对比。

hotfix分支

  • 补丁分支 , 基于master分支克隆 , 主要用于对线上的版本进行BUG修复
  • 线上bug修复完成上线以后,需要将hotfix修复内容合并到当前提测分支上
  • 由组长来拉取

git提交流程

在这里插入图片描述

代码合并(统一全部使用rebase)

命令方式

git pull --rebase
或者
git fetch    # 将远端代码更新到本地仓库
git rebase origin/master # 将代码合并到当前分支

IDEA方式

在这里插入图片描述

Tag 使用规范

需求版本大版本根据:V1.0.0 往后累加 V1.1.0

修复bug小版本上线: V1.0.0往后累加V1.0.1

# 查看当前所有tag
git tag --list
git tag -a V1.0.0 -m "xxxxx需求上线"
git push --tags

常见git使用命令

创建分支,并且推到远端

git checkout -b feature/feature_security dev  # 基于dev分支创建
git push origin feature/feature_security  

也可以直接基于dev分支直接推送分支

git push origin dev:feature/feature_security  # 这样会创建分支并且将分支push到远端分支

git stash暂存

git stash 使用的场景一般有两种:

  • 多人修改同一分支,我在本地修改好后,发现远程分支已经被改动了,此时是无法pull的。

    git stash #先将本地代码暂存至缓存区域
    git pull --rebase #再更新代码至本地
    git pop   #再将暂存区域代码重新加载到本地
    
  • 不小心改动了其他分支代码。比如本来是在feature/feature01分支上开发,一不小心切换到了master 分支,并且在master分支上修改了代码,这个时候想把代码切换到feature/feature01分支

    git stash #先将本地代码暂存至缓存区域
    git checkout feature/feature01 #再将分支切换到feature/feature01分支
    git pull --rebase # 非必须步骤,更新远程代码到本地
    git pop  #再将暂存区域代码重新加载到本地
    

提交代码

建议:每次提交代码时,如果是同一个功能代码,提交时都提交到本地,不要每次都push 到远端,是同一个功能的合并为一次提交,较少无效的提交,比如同一个文件修改多次,提交多次,修改一个备注提交多次。

git add .    # 添加提交内容 ‘.’表示当前目录所有,如果需要单独添加某一个文件:git add xxx.txt
git commit -m 'feature(bin): add first commit'  # 提交代码到本地仓库
git push origin master   # 将代码推送到远程仓库

查看所有远程仓库引用名

git remote 

查看远程分支列表

git branch -a

合并某一次提交

git cherry-pick 'commit-id'

查看文件在工作区、暂存区、本地仓库中的状态

git status 

修改提交的注释(未push到远端记录)

git commit --amend

按键i可进入编辑模式(与vim用法相同)。ta

按键ESC可退出编辑模式

wq:退出保存

q!: 退出不保存

保存以后退出,再查看一下提交内容是否被修改git log

修改某一次提交的注释(未push到远端记录)

首选需要找到需要修改的commit it ,git log 找到提交的commit id ,只有两次以上的提交才可以使用,如果只有一次提交则使用git commit --amend即可

git log 
git rebase -i 28b197a00473ea1b46fab13263c294cce0d7401c

修改完注释以后需要把 pick改为reword.

修改提交的注释(push到远端记录)

使用上面的方法也可以

这里修改完成以后需要强制推到版本分支才可以。

git push origin master -f所以这里需要注意下,一般情况下不要这么处理

更新代码到本地并且进行合并

git fetch    # 将远端代码更新到本地仓库
git rebase origin/master # 将代码合并到当前分
git rebase origin/feature:test # 将代码合并到测试分支git pull --rebase # 将代码更新到本地仓库并且合并到当前分支

本地并且进行合并

git fetch    # 将远端代码更新到本地仓库
git rebase origin/master # 将代码合并到当前分
git rebase origin/feature:test # 将代码合并到测试分支git pull --rebase # 将代码更新到本地仓库并且合并到当前分支

http://www.ppmy.cn/news/957769.html

相关文章

ChatGPT画玫瑰花 | prompt

很明显,失败了!!!!!救命啊啊啊啊啊啊啊啊啊啊啊 和chatgpt-3.5完整的对话过程如下:http://t.csdn.cn/AeEae

ChatGPT 投喂指南

我想要让 ChatGPT 做这些事: 给它一份 PDF,让它分析摘要、提炼内容; 让它去看某个网页,帮我查询最新的信息; 给它一份数据表格,让它分析出数据的变化; 给它一份文本,让它总结、模…

ChatGPT秒杀了所有408考研编程题……

编辑 | FightingCV 点击下方卡片,关注“自动驾驶之心”公众号 ADAS巨卷干货,即可获取 本文均由ChatGPT生成 那么,ChatGPT可以解决408中的编程题吗? 直接结论:由ChatGPT给出的408代码90%可以拿满分 2023年408的编程题 …

chatgpt开发内核定时器模块的完整过程

描述任务需求后,几乎在同一时刻chatgpt给出响应,开始进入代码刷屏模式,coding过程中还不忘给代码添加注释。 要求它顺便将Makefile文件写好提供给我,刷完代码后,进跟着开始刷Makefie文件: 编译生成的代码时…

ChatGPT实现leetcode 刷题和变型

leetcode 刷题和变型 作为一个程序员,Leetcode 是一个非常重要的网站。它不仅可以帮助程序员提高算法和数据结构的能力,还能帮助我们准备技术面试。但是,刷 Leetcode 也需要花费大量的时间和精力来解决各种难题。那么,有没有什么…

leetcode:704. 二分查找(python3解法)

难度:简单 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 示例 1: 输入: nums [-1,0,3,5,9,12], target 9…

Idea的神级辅助插件-Bito-ChatGPT

最近被一款Idea的辅助神器协助Coding,让我都开始害怕我的程序员的活会不会就这样被替代了。现在给大家介绍这款神器Bito-ChatGPT,它能让开发人员轻松编写代码、理解语法、编写测试用例、解释代码、注释代码、检查安全性,甚至解释高级概念。 1…

介绍一款idea神级插件【Bito-ChatGPT】而且免费!

什么是Bito? Bito是一款在IntelliJ IDEA编辑器中的插件,Bito插件是由ChatGPT团队开发的,它是ChatGPT团队为了提高开发效率而开发的一款工具。ChatGPT团队是一支专注于自然语言处理技术的团队,他们开发了一款基于GPT的自然语言处理…