0


git企业级操作流程

git

企业实战

在本地储存源码

  • 源码被误删
  • 添加新功能后,希望回退到上一个版本
  • 团队协作

生成与

github

平台通信的公钥与私钥

  • 打开git bash,输入ssh-keygen -t rsa -C "你的git邮箱"
  • 回车后会出现一个包含了密钥信息的文件,一般生成在/c/Users/Vitam/.ssh/id_rsa之中
  • 登录到github,在setting中找到配置SSH and GPG keys选项,将上述的密钥内容复制到其中,点击添加即可
  • 使用ssh -T [email protected]查看托管平台是否已经成功连接 - You've successfully authenticated, but GitHub does not provide shell access.表示连接成功
  • 使用git config --global user.name "你的用户名"配置自己的用户名
  • 使用git config --global user.email "你的电子邮件"配置自己的邮件信息

项目中

git

的步骤及常用命令

  • 项目负责人搭建项目仓库
  • 开发人员使用git clone "新建项目的远程仓库地址"将项目负责人的仓库克隆到本地 - 将项目克隆到本地之后,会自动将远程的项目定义为origin,在项目的config文件中可以对这个项目的名称进行修改- 会创建远程仓库对应的本地仓库- 会自动在本地生成一个main主分支,对应远程仓库origin/main
  • 开发人员在项目中新增功能代码(默认在主分支,也可以创建并切换到其他分支) - 使用git pull拉取更新远程仓库最新的代码到本地仓库- 使用git add 文件名/.将指定文件/所有文件添加到暂存区- 使用git commit -m "你的描述信息"将暂存区的文件提交到本地仓库- 使用git log查看代码修改日志- 使用git status查看当前操作的状态信息- 使用git branch查看当前工作在哪个分支上- 使用git push origin main:main将本地仓库中main分支上的代码推送到名为origin的远程仓库main分支中- 使用git diff HEAD -- 文件名可以查看工作区与仓库的代码差异

HEAD

指针的作用

  • HEAD指针指向当前的版本

版本回退

  • git add之前出现的错误 - 可以直接修改源文件- 可以使用git checkout -- 文件名称利用仓库中的文件直接覆盖掉这次的改动
  • git add之后与git commit之前出现的错误 - 使用git reset HEAD将暂存区的所有文件全都回退到工作区- 也可以使用git reset HEAD 文件名将某个文件从暂存区回退到工作区
  • git commit之后与git push之前出现错误 - 使用git reset --hard 版本id将仓库中的文件回退到指定编码的仓库状态- 使用git reset --soft 版本id将仓库中的文件回退到指定编码的仓库状态,并且会向前推进一个版本
  • git push之后出现的错误 - 按照正确的流程,在本地修改好bug之后重新进行提交- 一般来说,如果出现错误之后,往往希望回退到错误出现之后的版本,但是如果本地仓库版本低于远程仓库版本,那么使用push将不会推送成功 - 不建议使用git push origin -f main:main强制推送代码,因为如果在你之后仍然有人向远程仓库提交代码,那么强制推送将会覆盖掉别人的代码,而回退到之前的代码

冲突解决

  • 多人开发同一个项目时,同时pull到最新的代码后,执行开发,这时每个开发人员的基础代码都是基于最初的代码版本
  • 在开发的过程中,首个push新代码的人不会出现冲突,因为源码仍然是最初的版本未被更改
  • 其余人员在后续的push时,会出现代码冲突

当多人未修改同一个代码区时

  • push时会被reject,同时会提示需要将代码重新pull后再push,拉取回代码之后会自动将新代码merge到当前文件中,再次执行push命令即可

当多人同时修改同一个代码区时

  • push时会被reject,同时会提示需要将代码重新pull后再push,但是在拉取回代码之后不会自动将新代码merge到当前文件中,这时候要求开发者自行解决冲突,在冲突解决好之后,从git add开始执行

本地分支管理

  • git branch查看本地分支
  • git branch -r查看远程分支
  • git branch -a查看所有分支
  • git checkout -b 新的分支名称新建本地分支并切换到新建分支- 对于新建分支,默认地,这个分支不会对应远程仓库的任意分支- 在pull时会报错- 在push时,需要指定推送的远程仓库分支
  • git checkout -b 新的分支名称 远程仓库名称/远程分支名称创建新的分支并且将新分支与远程仓库对应分支实现映射操作1操作2
  • git checkout 分支名称切换到对应分支
  • git branch 分支名称新建对应本地分支
  • git merge 分支名称将对应分支名称合并到当前所在的分支- merge之后,分支的代码将会被合并到当前分支的仓库
  • git branch -d/-D 分支名称删除对应分支- -d表示如果分支尚未被合并,还存有代码,将不会删除分支- -D表示无论分支是否还有代码,强制删除
  • git branch -vv可以追踪本地分支与远程分支的映射情况
  • git branch -u 远程仓库名称/远程分支名称为当前分支设置一个远程仓库的映射分支

本地分支冲突解决

  • 我基于某个原始版本创建了一个分支,并且基于这个分支增加了新的功能
  • 在将新功能推送到远端的仓库之前,另外的开发者更新了远端的原始版本
  • 这时我切换到原始分支,执行pull操作,会拉取到最新的版本,而我的分支是基于原始版本开发的,在将我的分支merge到最新版本时,会出现合并冲突
  • 解决冲突的逻辑与上述逻辑一致

远程分支管理

  • 当项目已有功能稳定之后,项目负责人会创建另外的远程分支开发新的功能

git

在企业中的使用

分支总览

  • 远程:master,release,dev
  • 个人:feature,bugfix,hotfix

远程分支

  • 项目管理人员会从项目的主分支中新建一个dev开发分支,在一个开发周期内,允许开发人员将代码向dev分支进行提交
  • 当开发周期结束后,项目管理人员会将dev分支中的所有代码合并到master分支中.并再次创建一个release分支,测试人员介入,测试代码,发现bug之后开发人员在该分支上修复bug
  • 当所有的bug修复完成之后,项目管理人员再次将所有代码合并到master分支中,最后上线产品
  • 在之后的版本迭代中,依照上述顺序进行迭代

本地分支

  • 开发者创建本地分支 - 使用git checkout -b feature/dev origin/dev创建一个名为feature/dev的本地分支,同时这个分支映射远程的origin/dev仓库
  • 因为项目不会是一个人单独开发,所以经常使用git pull命令将最新的远程仓库代码拉取回来
  • 在自己创建的feature/dev分支中进行开发 - 包括执行后续的git add,git commit等命令
  • 当所有的功能开发完成后,我们执行git push origin feature/dev:feature/dev_m_1.x将自己本地仓库的代码推送到远程仓库的feature/dev_m_1.x分支 - 注意在push代码之前,一定要执行git pull命令将最新的代码拉取到本地- 注意:执行git push并不是将自己的本地代码直接推送到远程的dev分支中,而是推送到远程的一个新建分支
  • 接下来就是使用代码评审工具,比如gitlab,gerrit等工具评审代码
  • 代码评审团队会评审开发人员新增的代码,评审通过后,开发人员提交一个merge request,并且邀请相应的人员对代码进行code review,通过之后项目管理人员会批准代码的合并
  • 相关人员提出修改意见之后,重新修改自己的代码,并且推送到对应的远程分支中
  • 相关人员批准代码后,项目管理人员执行代码合并
  • 代码合并后,可以删除自己的远程分支 - 使用git push origin :feature/dev_m_1.x,表示使用空的本地分支覆盖对应的远程分支

总体流程

  • 将远程仓库中的代码git clone到本地
  • 在本地使用git checkout -b 本地的新建分支名称 远程仓库名称/远程分支名称创建一个新的分支,同时这个本地分支会映射到远程仓库对应的分支 - 在这个新的分支中开发新的功能- 这个分支要对应正确的远程分支
  • 使用git push origin 本地的新建分支名称:再次新建一个远程的分支将自己完成的代码推送到远程仓库的另外一个新建分支 - 注意在push之前使用git pull将最新的代码进行同步- 在这个新建分支中执行pull request请求,选择合适的合并分支与reviewers人员,提交请求
  • 如果请求未通过,通过git pull拉取回最新的代码后进行更改,再次执行上述步骤
  • 如果请求通过,当代码合并之后,执行git push origin :上述自己新建远程分支名称来删除远程分支
标签: git

本文转载自: https://blog.csdn.net/qq_41455525/article/details/142884987
版权归原作者 Midshar.top 所有, 如有侵权,请联系我们删除。

“git企业级操作流程”的评论:

还没有评论