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

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提交流程

Git使用规范&&Git常用命令_第1张图片

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

命令方式

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

IDEA方式

Git使用规范&&Git常用命令_第2张图片

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 # 将代码更新到本地仓库并且合并到当前分支

你可能感兴趣的:(git,git,常用命令)