国外网站设计风格,wordpress页脚计时,设计网页页面的软件,民房做酒店出租网站app#xff08;二#xff09;Git在公司中团队内合作和跨团队合作和分支操作的全部流程#xff08;一篇就够#xff09;https://blog.csdn.net/m0_65992672/article/details/132336481
4.1、简介
Git是一个免费的、开源的*分布式**版本控制**系统*#xff0c;可以快速高效地…二Git在公司中团队内合作和跨团队合作和分支操作的全部流程一篇就够https://blog.csdn.net/m0_65992672/article/details/132336481
4.1、简介
Git是一个免费的、开源的*分布式**版本控制**系统*可以快速高效地处理从小型到大型的项目。
什么是版本控制
版本控制是一种记录一个或若干文件内容变化以便将来查阅特定版本修订情况的系统 。
我们常常会将自己的代码托管至一些代码管理平台进行托管比如Github、Gitee、或是自己搭建的托管平台等其中Git就是重要的传输控制工具。在一开始学习git的时候可能大多数小伙伴并没有合作和分支相关的概念只是熟悉git最基本的pull、commit和push。如下图
Remote是远程仓库Repository是本地仓库workspace是自己项目的工作区间这些基本的概念和基本操作就不多详细解释了接下来进入重点我们要加入分支管理和合并的概念。 本次示例使用的托管平台为自行部署的平台——Gitlab全程使用命令方式不推荐使用任何有关git的GUI工具tortoise或是编辑器idea等里的git集成工具。
4.2 GitHub服务器
公司中我们可以搭建中央服务器让项目组开发人员共享代码但是如果我们的开发人员都是通过互联网进行协作而不是在同一个地方那么开发时程序文件代码的版本管理就显得更加重要这就需要搭建一个互联网的版本库让不同地点的人都可以进行访问。这里我们不用自己搭建。因为GitHub网站已经帮助我们提供了共享版本库功能。所以我们接下来就讲解一下如何使用GitHub网站所提供的功能使用Git。 4.2.1 注册网站会员
GitHub官网地址GitHub: Let’s build from here · GitHub
填写你的邮箱地址和密码姓名 一顿操作注册完毕后进入你的主页 4.2.2 创建新的仓库 输入仓库的相关信息 点击创建按钮创建新的仓库。 4.2.3 本地仓库的基本操作指令
# create a new repository on the command lineecho # git-study README.mdgit initgit add README.mdgit commit -m first commitgit branch -M maingit remote add origin gitgithub.com:Aitiger-coffee/git-study.gitgit push -u origin main# push an existing repository from the command linegit remote add origin gitgithub.com:Aitiger-coffee/git-study.gitgit branch -M maingit push -u origin main
4.2.4 SSH免密操作
github支持两种同步方式“https”和“ssh”。如果使用https很简单基本不需要配置就可以使用但是每次提交代码和下载代码时都需要输入用户名和密码。ssh模式比https模式的一个重要好处就是每次push、pull、fetch等操作时不用重复填写遍用户名密码。前提是你必须是这个项目的拥有者或者合作者且配好了ssh key。
4.2.4.1 本地生成SSH密钥
# ssh-keygen -t rsa -C GitHub账号ssh-keygen -t rsa -C 15811009164163.com 4.2.4.2 集成用户公钥
执行命令完成后,在window本地用户.ssh目录C:\Users\用户名\.ssh下面生成如下名称的公钥和私钥: 按照操作步骤将id_rsa.pub文件内容复制到GitHub仓库中 点击Add按钮增加SSH公钥信息 4.2.5 设定全局用户
git config --global user.name 15811009164# 这里的邮箱地址需要为GitHub网站的注册账号git config --global user.email 15811009164163.com
4.2.6 创建本地库以远程地址
# 初始化本地仓库git init# 设置远程仓库git remote add origin gitgithub.com:Aitiger-coffee/git-study.git
4.2.7 新增提交本地仓库文件 4.2.8 推送到GitHub远程仓库
# 推送文件git push origin master 4.2.9 查看GitHub远程仓库 4.2.10 增加合作伙伴 选择合作账号,发出合作申请 4.2.11 合作伙伴确认
合作伙伴收到确认后点击Join按钮继续 点击Accept Invitation按钮进行确认 此时已经可以合作开发了。 4.2.12 远程仓库fork操作
如果项目存在大量合作伙伴对于版本库的管理明显是一个特别大的风险所以如果不想要选择大量的合作伙伴但依然有人想要对项目代码进行维护更新和扩展的话此时我们就可以使用fork功能。 点击Create fork按钮即可 这样就等同于创建了一个自己的远程仓库。但是这个远程仓库等同于是一个分支远程仓库你可以随便操作并不会影响源仓库但是如果你的修改更新想要融合到源仓库中就需要提交申请了。
我们这里首先将文件改一下。 发送提交申请 合并修改请求 修改请求确认 4.3 IDEA集成GitHub
实际的开发中代码都是采用IDE进行开发所以我们这里介绍一下IDEA软件是如何集成GitHub远程仓库进行代码版本控制的。这里采用的IDEA版本为2022.2.1,其他版本的IDEA软件会略有差别 4.3.1 配置Git软件 4.3.2 配置GitHub账号 继续点授权按钮 继续点击授权按钮 输入GitHub账号密码 4.3.3 创建项目 4.3.4 添加项目代码 4.3.5 创建本地版本库 4.3.6 提交本地版本库 4.3.7 创建新的远程版本库 推送前的忽略文件
有些时候我们不想把某些文件纳入远程仓库 中比如数据库文件临时文件设计文件等
在主目录下建立.gitignore文件此文件有如下规则 忽略文件中的空行或以井号#开始的行将会被忽略。 可以使用Linux通配符。例如星号*代表任意多个字符问号代表一个字符方括号[abc]代表可选字符范围大括号{string1,string2,...}代表可选的字符串等。 如果名称的最前面有一个感叹号!表示例外规则将不被忽略。 如果名称的最前面是一个路径分隔符/表示要忽略的文件在此目录下而子目录中的文件不忽略。 如果名称的最后面是一个路径分隔符/表示要忽略的是此目录下该名称的子目录而非文件默认文件或目录都忽略。
#为注释
*.txt #忽略所有 .txt结尾的文件,这样的话上传就不会被选中
!lib.txt #但lib.txt除外
/temp #仅忽略项目根目录下的TODO文件,不包括其它目录temp
build/ #忽略build/目录下的所有文件
doc/*.txt #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt 4.3.7 推送到远程版本库 可以推送到gitee、GitHub等第三方远程仓库 编辑 4.3.8 查看历史版本 4.3.9 拉取远程库到本地库 比如第一天完成工作推送到远程仓库了第二天来到工作岗位切记要先 pull 拉取一下远程库的代码将本地代码更新到最新以后然后再修改提交推送 右键点击项目可以将远程仓库的内容 pull 到本地仓库。 4.3.10 分支操作 详细分支操作可看置顶文档 创建一个分支
master - New Branch 填写分支名称Create 创建分支成功后会自动切换到创建的分支 可以看出GitHub上git仓库多了一个分支 通常情况下一个项目可能有多个分支由多个开发人员开发每个开发者会创建自己的分支然后将代码合入到主分支
下面我们就来看看如何将代码合入主分支 第一步 拉取主分支最新代码 因为我们要合入代码到主分支master所以先拉取master分支的最新代码防止合入时产生冲突 选择master分支 拉完代码可能会有冲突我们处理完冲突后切换到master分支 Git合并分支逻辑 主分支中将分支的代码合入时不需要处理冲突了因为之前在分支上拉取了主分支代码处理过冲突了但是在多开发者的共同开发的情况下这不是一定的因为在我们将多位开发者的多份代码合入主分支时如果此时有人提交了的代码和你提交的代码有交集就有可能导致冲突发生但这种情况下概率比较低一般来说每个开发者负责的开发任务一般没有交集即使别人提的代码很少会影响到你提交的代码但是如果有冲突解决一下也可以
一般企业开发中会规定一个统一的合入代码时间这样合入代码时就可以专心解决合入中少量的冲突问题有时甚至没有冲突而不用关心合入中途还有新代码的合入一般也会限制开发者不能直接提代码到主分支由某人统一合入开发者们申请合入的代码也就是说合入代码前只拉取一次最新的主分支代码然后合入各分支代码
下面为合并分支代码的具体步骤
master - zj - Merge ‘zj’ into ‘master’
在主分支中将zj分支合并到master主分支中 在主分支合入完分支代码后还需要将本地仓代码推送给GitHub这样以后别人拉取主分支代码时就是最新的代码了
注在提交代码时都要考虑下是否需要先拉取下最新代码以防产生冲突
将分支推送到远程仓库 冲突合并
首先yka分支新增一条数据提交了 现在切换到master master在同一位置新增一条数据并提交 现在在主分支中把yka分支合并到master分支中 就会出现合并合并冲突
特殊符号 HEAD 当前分支的代码 合并过来的代码 hot-fix 切换到yka分支中合并主分支 两个分支就一致了 将分支推送到远程仓库 亲测有效直接拿走