Git/GitHub/Gitee⼯作流最佳实践

news/2024/5/17 19:45:56 标签: git, github, gitee

我在这里为刚接触git或者对于git不太熟悉的朋友提供一套切实可行的使用方法,建议单独创建一个测试项目熟悉一下我下面讲述的git使用工作流程。如果你能按照步骤逐步理解我的思路,相信你的代码管理能力将上升一个层次!

第⼀步

git clone xxx
克隆拉取最新的代码

第⼆步

git checkout -b my-feature
将主分⽀建⽴新 feature branch 作为⾃⼰修改代码的分⽀
并切换到feature分⽀上

第三步

当有代码修改需要add
使⽤
git diff
查看具体变化了哪些⽂件
然后再
git add

第四步

使⽤
git commit
将代码提交到本地git

⾄此刻feature branch(my-feature)这个分⽀ 才与本地主分⽀不同了

第五步

使⽤
git push origin my-feature
就会在远程仓库中多出⼀个branch
经常的情况是:
在我们push时 main分⽀已经发⽣过更新了⽐如最新的代码是main-update
所以我们要判断这个main-update与我们的my-feature合并后是否好使
⽽此时我们的磁盘上的main分⽀远程仓库的main分⽀不同的所以需要更新我们本地的main分⽀

第六步

切换本地分⽀到 main branch
git checkout main

然后pull最新的代码
git pull origin master

然后再回到我们的my-feature分⽀
git checkout my-feature

第七步

现在在my-feature分⽀中同步main的代码改变
git rebase main

意思是:先将我们的修改的代码放在⼀边将主分⽀发⽣的跟新拼接在我们的commit之前,再尝试将我们
commit的代码搞回去,如果中途出现了rebase conflict 需要⼿动选择需要保存的代码内容
》》》
在我们rebase成功之后我们相当于是在最新的main branch上做了我们的修改
现在我们就可以将代码
git push -f origin my-feature

因为我们做了rebase 所以加 -f 强⾏ push

第⼋步

将更新的代码在远程仓库合并
这个过程叫 pull request
因为:我们在形式上认为main分⽀是属于项⽬的,⽽my-feature(feature branch)才属于个⼈,即使
这个仓库主⼈就是我们⾃⼰;所以我们要request这个项⽬的主⼈将我⾃⼰新的修改合并到项⽬中

作为项⽬的主⼈我们在合并请求的分⽀时⼀般在审查代码之后
使⽤Squash and merge
因为:我们⼀个项⽬可能有⾮常多的commit,同时想让我们的main branchcommit history 尽可能
简洁,尤其希望我们的main branch中的每⼀个commit都是可以正常⼯作的,所以⼤多数情况我们选择
Squash and merge(将这⼀个分⽀上所有改变合并成⼀个改变然后再将最终的commit放到main
branch
上⾯)

⾄此我们的代码的改动都正常合并到了main branch中只是commit的数量和名字发⽣了改变

⼀般在pull request 被项⽬管理者merge后会删除远端的这个branch对于管理者我们提交的branch
是远端的

delete branch
此时我们local branch上还有my-feature branch
我们需要
git checkout main

main分⽀
git branch -D my-feature
localmy-feature branch 删除
最后使⽤git pull origin master 将项⽬最新的更新拉取到本地main分⽀和我们的磁盘中

现在我们完成了⼀次完美的Git/GitHub/Gitee⼯作流


http://www.niftyadmin.cn/n/5470005.html

相关文章

Red Hat Enterprise Linux release 8.4安装Jenkins

1. 查看安装 1.1 显示 Linux 系统的详细信息,包括内核版本、操作系统版本和其他相关信息 uname -a1.2 查看 Red Hat Linux 系统的版本 cat /etc/redhat-release # 或者 cat /etc/os-release1.3 查看 JDK 是否安装 java -version #查看安装路径 echo $JAVA_HOME1…

学浪m3u8视频解密

学浪的m3u8中的key进行了加密,而且还是难度比较高的vmp,为了让非程序专业用户能够下载学浪的视频,这里将学浪key解密和学浪获取课程集成在一个软件 小浪助手:专门下载学浪视频而生 小浪助手我打包在一起 链接:https://pan.baid…

语音芯片 SOP8、SOP16、SOP24脚在性能上有哪些不同呢?

随着语音识别技术的不断发展,人们对语音芯片的需求也越来越高。 其中,SOP8、SOP16和SOP24脚语音芯片是目前市面上应用比较广泛的芯片类型。这些芯片在性能上有什么区别?下面我们来具体分析一下。 首先,SOP8、SOP16、SOP24脚语音芯…

redis---哨兵模式Sentinel

上次搭建了一主两从的Redis集群,来实现了一定程度上的高可用。相比一个单节点的Redis来说已经有了很大的提升。 但是这个集群还是有一些问题的,主节点宕机了,我们还是需要手动去把另一台从节点提升为主节点,这样就不能实现真正的…

“光”速?HakariCP为什么这么快?

引言 Springboot 2.0将 HikariCP 作为默认数据库连接池这一事件之后,HikariCP 作为一个后起之秀出现在大众的视野中。HikariCP 是在日本的程序员开源的,hikari日语意思为“光”,HikariCP 也以速度快的特点受到越来越多人的青睐。 今天就让我…

asf是什么格式的文件?用手机怎么打开?

由于手机操作系统和硬件的限制,大部分手机并不直接支持asf文件的播放。因此,如果你想在手机上打开asf文件,你可能需要先将文件转换为手机支持的格式,如MP4。可以通过使用一些视频转换软件来实现,比如野葱视频转换器。 …

openGauss学习笔记-255 openGauss性能调优-使用Plan Hint进行调优-Hint的错误、冲突及告警

文章目录 openGauss学习笔记-255 openGauss性能调优-使用Plan Hint进行调优-Hint的错误、冲突及告警 openGauss学习笔记-255 openGauss性能调优-使用Plan Hint进行调优-Hint的错误、冲突及告警 Plan Hint的结果会体现在计划的变化上,可以通过explain来查看变化。 …

【项目技术介绍篇】若依项目代码文件结构介绍

作者介绍:本人笔名姑苏老陈,从事JAVA开发工作十多年了,带过大学刚毕业的实习生,也带过技术团队。最近有个朋友的表弟,马上要大学毕业了,想从事JAVA开发工作,但不知道从何处入手。于是&#xff0…