Git和GitFlow分支管理

1. Git和SVN的区别

SVN是集中式版本控制系统

Git是分布式版本控制系统,有远程仓库,本地仓库,分支组成。

2. Git本地仓库和工作区

远程仓库——保存我们代码的服务器

本地仓库——连接本地代码和远程代码的枢纽,不能联网时本地代码可以先提交到本地仓库

暂存区——提交代码,解决冲突的中转站

工作区——我们创建的工程文件,在编辑器中可直观显示

分支——就是从主线上分离出来的一个快照

3.Git基础命令流程图

Clone:克隆远程仓库到本地目录,并初始化本地工作区

Fetch:从远程仓库获取最新内容到本地仓库

Push:推送本地版本库内容到远程仓库

Pull = Fetch + Merge:拉取远程仓库内容并合并到本地工作区,一般建议分开使用

Git和GitFlow分支管理

4. Git常用命令

创建版本库

命令 功能
git clone <url> 克隆远程版本库
git init 初始化本地版本库

修改和提交

命令 功能
git status 查看状态
git diff 查看变更内容
git add . 跟踪所有改动过的文件
git add <file> 跟踪指定的文件
git mv <old> <new> 文件改名
git rm <file> 删除文件
git rm --cached <file> 停止跟踪文件但不删除
git commit -m "commit message" 提交所有更新过的文件
git commit --amend 修改最后一次提交

查看提交历史

命令 功能
git log 查看提交历史
git log -p <file> 查看指定文件的提交历史
git blame <file> 以列表方式查看指定文件的提交历史

撤销

命令 功能
git reset --hard HEAD 撤销工作目录中所有未提交文件的修改内容
git checkout HEAD <file> 撤销指定的未提交文件的修改内容
git revert <commit> 撤销指定的提交

分支与标签

命令 功能
git branch 显示所有本地分支
git checkout <branch/tag> 切换到指定分支或标签
git branch <new-branch> 创建新分支
git branch -d <branch> 删除本地分支
git tag 列出所有本地标签
git tag <tagname> 基于最新提交创建标签
git tag -d <tagname> 删除标签

合并与衍合

命令 功能
git merge <branch> 合并指定分支到当前分支
git rebase <branch> 衍合指定分支到当前分支

rebase——把分叉的提交历史“整理”成一条直线,看上去更直观

远程操作

命令 功能
git remote -v 查看远程版本库信息
git remote show <remote> 查看指定远程版本库信息
git remote add <remote> <url> 添加远程版本库
git fetch <remote> 从远程库中获取代码
git pull <remote> <branch> 下载代码及快速合并
git push <remote> <branch> 上传代码及快速合并
git push <remote> : <branch/tag-name> 删除远程分支或标签
git push --tags 上传所有标签

5. GitLab远程仓库管理流程

  • GitLab注册登录
  • 远程仓库创建
  • 分支创建,默认分支设置
  • 分支权限配置
  • 克隆远程仓库
  • 本地文件添加、修改、提交、推送、拉取等操作

6. Git分支策略

主分支

在远程中央代码库中一直存在的分支。不允许开发者在主分支直接进行修改和提交。

Master(生产分支)

生产环境代码中心分支,每次发布成功上线后都打上标签

Develop(开发分支)

测试环境代码中心分支,功能开发完成后,合并Feature功能分支代码到此分支进行测试。

辅助分支

是发挥相应的功能后就被删除的临时分支。

Feature(功能分支)

从Master分离出来的被用于开发特定功能的分支。功能开发结束后被合并到Develop中。上线成功后,可以删除此功能分支。不允许直接拉取Devlop分支。

Release(发布分支)

从Master分离出来的为发布做准备的分支。在发布的准备工作期间,为了避免多余的 Feature混杂到发布中而建立的分支。发布结束后被合并到 Master 分支。

7. GitFlow 工作流程

  • 初始化项目(init gitflow):初始化Master主分支从Master复制一个Develop主分支
  • 功能开发:从Master复制一个Feature(功能)分支,开始开发
  • 功能测试:在Develop主分支上合并要测试的Feature功能分支
  • 版本发布:从Master复制一个Release分支,然后合并一个或多个Feature功能分支到Release(发布)分支,成功上线后,合并到Master主分支,然后打上标签Tag版本号,最后,删除发布分支

Git和GitFlow分支管理

8. IDEA如何使用Git进行代码管控

  • IDEA导入Git项目
  • IDEA分支切换
  • IDEA代码修改、提交、push、pull
  • IDEA代码提交回退revert和revert commit
    ,合并到Master主分支,然后打上标签Tag版本号,最后,删除发布分支

8. IDEA如何使用Git进行代码管控

  • IDEA导入Git项目
  • IDEA分支切换
  • IDEA代码修改、提交、push、pull
  • IDEA代码提交回退revert和revert commit
  • IDEA不同分支代码合并和cherrypick

相关文章:

  • 2021-11-16
  • 2021-05-02
  • 2021-07-18
  • 2021-07-20
  • 2021-04-23
猜你喜欢
  • 2021-06-22
  • 2021-11-11
  • 2022-12-23
  • 2021-09-06
  • 2021-09-27
  • 2022-12-23
  • 2021-11-30
相关资源
相似解决方案