php网站开发教程 pdf,wordpress安装超时,推荐好用的分销平台,住房和城乡建设厅网站青海省文章目录 0. 前言1.分支分类和管理1. 分支分类规范#xff1a;2. 最佳实践3. 分支命名规范示例#xff1a;4. 分支管理方法#xff1a; 2. commit 注释规范1. 提交注释结构#xff1a;2. 提交注释的准则#xff1a; 3. git 常用命令1. git pull 核心用法2. git push 命令1… 文章目录 0. 前言1.分支分类和管理1. 分支分类规范2. 最佳实践3. 分支命名规范示例4. 分支管理方法 2. commit 注释规范1. 提交注释结构2. 提交注释的准则 3. git 常用命令1. git pull 核心用法2. git push 命令1. 初始化一个新的仓库2. 克隆一个远程仓库3. 添加文件到暂存区4. 添加所有修改的文件到暂存区5. 提交暂存区的文件到仓库6. 查看当前仓库的状态7. 查看提交历史记录8. 查看文件的修改差异9. 查看分支列表10. 创建一个新分支11. 切换到另一个分支13. 合并指定分支到当前分支14. 删除分支15. 撤销工作区的修改16. 撤销暂存区的文件17. 回退到上一个提交版本18. 回退到指定提交版本19. 拉取远程仓库的更新到本地20. 推送本地分支到远程仓库21. 强制推送本地分支到远程仓库22. 查看远程仓库列表23. 添加一个远程仓库24. 移除一个远程仓库25. 创建一个带有注释的标签26. 查看标签列表27. 查看标签的详细信息28. 推送本地标签到远程仓库29. 推送所有本地标签到远程仓库30. 删除本地标签31. 删除远程标签32. 使用Git配置别名33. 查看远程仓库信息34. 创建并切换到一个新分支35. 重命名分支36. 查看远程仓库的提交记录37. 从远程仓库拉取指定分支到本地38. 查看远程分支列表39. 将指定分支重置到特定提交版本40. 修复合并冲突41. 修改最后一次提交的注释42. 暂时存储当前的修改43. 查看存储的修改列表44. 恢复最近一次存储的修改45. 恢复指定的存储的修改46. 删除最近一次存储的修改47. 删除指定的存储的修改 4.参考文档 0. 前言
背景最近有刚入职公司的小伙伴们总是在git使用过程中一系列问题而且问题很多都是低级问题。所以我觉得有必要分享一个帖子和大家学习一下。找了一下公司git管理规范文档发现文档的描述不是很好理解而且已经和现在的管理方式有一定的出入。所以我自行总结了一个。希望大家能有所收获和收藏。
1.分支分类和管理
分支分类和管理是一个关键的版本控制实践它可以帮助团队组织和管理代码开发过程。
1. 分支分类规范
以下是以表格形式展示的分支分类规范和命名示例目前git 没有硬性规范这些规范都是大家在长期使用的过程中总结出来的可能每个公司都有差异不用上纲上线
分支类型描述命名示例主分支Main Branch用于发布稳定版本和部署到生产环境main、master开发分支Development Branch用于整体开发和集成新功能develop特性分支Feature Branch用于开发单个功能或特性feature/user-authenticationfeature/payment-integration发布分支Release Branch用于准备项目发布release/1.0.0release/2.3.1热修复分支Hotfix Branch用于紧急修复生产环境中的问题hotfix/bug-fixhotfix/security-patch
2. 最佳实践
列举一个分支管理的最佳实践仅供大家参考。 使用Git一般至少2个分支master和develop master生产环境都来主干分支拿数据部署也可以使用钩子自动完成 develop开发分支开发人员都是检出这个分支开发 使用辅助分支 feature具体的功能开发分支只与develop分支交互 release发布版本再经测试迭代后需要合并到master分支 hotfix紧急bug修复分支最后需要合并到master和develop分支中 3. 分支命名规范示例
使用小写字母和短划线-作为分支命名的分隔符。使用清晰、简洁的名称来描述分支的目的和内容。遵循一致的命名约定以便团队成员能够轻松理解和识别分支。
4. 分支管理方法
使用版本控制系统如Git来跟踪和管理分支的创建、合并和删除。定义明确的分支策略和工作流程包括分支的创建、合并和命名规范。确保团队成员了解和遵守分支管理规范并进行必要的培训和沟通。定期进行分支合并和清理删除不再需要的分支以保持分支结构的清晰性和可维护性。
2. commit 注释规范
提交commit注释是版本控制系统中记录每次代码提交的重要信息。为了保持提交历史的清晰、易读和易于理解以下是一种常用的提交注释规范 这个规范是大多数公司在使用的可能每个公司还有自己的特殊定义或者提交注释术语这个不是标注答案希望大家根据自己公司的规范提交注释如果没有规范可以参考下面的。
1. 提交注释结构
类型 描述
[可选] 正文类型表示提交的类型可以是以下之一 新增feat添加新功能或功能模块修复fix修复问题或错误文档docs更新文档或注释样式style调整代码格式或样式不影响代码逻辑重构refactor重构代码既不修复错误也不添加新功能测试test添加或修改测试代码杂项chore构建过程或辅助工具的变动 描述简明扼要地描述本次提交的目的或变动内容。 [可选] 正文可选项用于提供更详细的提交说明、变动原因、解决方案等。
也有下面这种常见的分类不用纠结使用哪种公司有规范遵循公司规范公司没有遵循自己学习到的规范。
build修改项目的的构建系统xcodebuild、webpack、glup等的提交ci修改项目的持续集成流程Kenkins、Travis等的提交chore构建过程或辅助工具的变化docs文档提交documentsfeat新增功能featurefix修复 bugpref性能、体验相关的提交refactor代码重构revert回滚某个更早的提交release发布新版本style不影响程序逻辑的代码修改、主要是样式方面的优化、修改test测试相关的开发improvement在现有功能上优化、改进
2. 提交注释的准则
使用简洁、明确的语言描述提交的目的避免过于模糊或冗长的注释。使用一般现在时如添加功能而不是过去时来描述提交的变动。遵循一致的注释风格和约定确保团队成员能够轻松理解和阅读提交历史。针对重要的提交可以在正文部分提供更详细的说明包括解决方案、参考文档等。
比如我举个例子下面是一个项目的git代码提交的注释大家可以看下。
feat添加用户认证功能fix修复支付模块中的空指针异常docs更新README添加安装说明style按照编码规范格式化代码refactor优化数据访问层提升性能test添加API端点的单元测试chore更新部署脚本
其实我还看到过一些公司的git 注释规范是feat[模块名]描述 这样一种结构我觉得也是一种优秀的实践粒度更细。
3. git 常用命令
1. git pull 核心用法 在特殊情况下我们如果使用IDEA pull 代码可以根据具体的场景操作 参数解释
--rebase使用 rebase 方式合并代码将本地提交应用于拉取的代码之上以保持提交历史整洁。-ff-only只进行快进合并Fast-Forward Merge如果无法快进合并则中止操作并提示错误。--no-ff禁用快进合并无论是否可以快进合并都会创建一个新的合并提交。--squash在合并代码之前将多个连续的提交压缩为一个提交并且不会自动创建合并提交。--no-commit拉取代码后不会自动创建合并提交允许您在继续操作之前对代码进行修改或执行其他操作。--no-verify在执行提交时跳过 Git 钩子Git hooks的验证步骤。
# 使用 rebase 进行合并
git pull --rebase# 只进行快进合并
git pull --ff-only# 禁用快进合并创建一个新的合并提交
git pull --no-ff# 在合并代码之前将多个连续的提交压缩为一个提交
git pull --squash# 拉取代码后不会自动创建合并提交
git pull --no-commit# 跳过 Git 钩子的验证步骤
git pull --no-verifygit pull 命令用于从远程仓库拉取最新的代码并合并到当前分支。下面是 git pull 命令的一些常见参数和相应的使用场景举例 git pull 场景在正常情况下直接使用 git pull 可以从远程仓库拉取最新的代码并合并到当前分支。示例git pull git pull origin 远程分支名 场景当需要从特定的远程分支拉取代码时使用该参数。示例git pull origin main说明这将从名为 origin 的远程仓库的 main 分支拉取最新的代码并合并到当前分支。 git pull --rebase 场景当希望使用 rebase 方式合并代码保持提交历史整洁时使用该参数。示例git pull --rebase说明这将从远程仓库拉取最新的代码并将当前分支的提交应用于拉取的代码之上。 git pull --no-commit 场景当希望从远程仓库拉取最新的代码但暂时不想创建合并提交时使用该参数。示例git pull --no-commit说明这将从远程仓库拉取最新的代码并合并到当前分支但不会自动创建合并提交。您可以在继续操作之前对代码进行修改或执行其他操作。 git pull --ff-only 场景当希望只进行快进合并Fast-Forward Merge不创建额外的合并提交时使用该参数。示例git pull --ff-only说明如果远程分支可以直接快进合并到当前分支那么将执行快进合并如果无法快进合并将会中止操作并提示错误。
2. git push 命令 git push 场景在正常情况下直接使用 git push 可以将当前分支的提交推送到与之关联的远程分支。示例git push git push origin 本地分支名:远程分支名 场景将本地分支的提交推送到指定的远程分支。示例git push origin feature-branch:remote-branch说明这将把名为 feature-branch 的本地分支的提交推送到名为 remote-branch 的远程分支。 git push --force 场景强制推送用于覆盖远程分支的提交历史。示例git push --force说明这将强制推送本地分支的提交覆盖远程分支的提交历史。请谨慎使用因为它可能会导致数据丢失或冲突。 git push --tags 场景将本地所有的标签tags推送到远程仓库。示例git push --tags说明这将把本地所有的标签推送到远程仓库以便在远程仓库中创建相应的标签。 git push --set-upstream origin 本地分支名 场景将本地分支与远程分支进行关联并推送。示例git push --set-upstream origin feature-branch说明这将推送本地分支的提交到名为 origin 的远程仓库并将本地分支与远程分支进行关联。
1. 初始化一个新的仓库
命令git init示例在当前目录初始化一个新的Git仓库。git init2. 克隆一个远程仓库
命令git clone 远程仓库地址示例克隆名为origin的远程仓库到本地。git clone https://github.com/user/repo.git3. 添加文件到暂存区
命令git add 文件名示例将file.txt添加到暂存区。git add file.txt4. 添加所有修改的文件到暂存区
命令git add .示例将所有修改的文件添加到暂存区。git add .5. 提交暂存区的文件到仓库
命令git commit -m “提交注释”示例提交暂存区的文件到仓库并添加注释。git commit -m 提交文件6. 查看当前仓库的状态
命令git status示例查看当前仓库的状态。git status7. 查看提交历史记录
命令git log示例查看当前分支的提交历史记录。git log8. 查看文件的修改差异
命令git diff 文件名示例查看file.txt文件的修改差异。git diff file.txt9. 查看分支列表
命令git branch示例查看当前仓库的所有分支列表。git branch10. 创建一个新分支
命令git branch 分支名示例创建一个名为feature的新分支。git branch feature11. 切换到另一个分支
命令git checkout 分支名示例切换到分支feature。git checkout feature创建一个新分支并切换到该分支
命令git checkout -b 分支名示例创建一个名为bugfix的新分支并切换到该分支。git checkout -b bugfix13. 合并指定分支到当前分支
- 命令git merge 分支名
- 示例将分支feature合并到当前分支。git merge feature14. 删除分支
命令git branch -d 分支名示例删除分支feature。git branch -d feature15. 撤销工作区的修改
命令git checkout – 文件名示例撤销对file.txt文件的修改。git checkout -- file.txt16. 撤销暂存区的文件
命令git reset HEAD 文件名示例撤销对file.txt文件的暂存。git reset HEAD file.txt17. 回退到上一个提交版本
命令git reset HEAD^示例回退到上一个提交版本。git reset HEAD^18. 回退到指定提交版本
命令git reset 提交哈希值示例回退到提交哈希值为abc123的版本。git reset abc12319. 拉取远程仓库的更新到本地
命令git pull 远程仓库名 分支名示例从远程仓库origin的master分支拉取更新。git pull origin master20. 推送本地分支到远程仓库
命令git push 远程仓库名 分支名示例推送当前分支到远程仓库origin。 git push origin feature21. 强制推送本地分支到远程仓库
命令git push -f 远程仓库名 分支名示例强制推送当前分支到远程仓库origin。git push -f origin feature22. 查看远程仓库列表
命令git remote -v示例查看当前仓库关联的远程仓库列表。git remote -v23. 添加一个远程仓库
命令git remote add 远程仓库名 远程仓库地址示例添加一个名为upstream的远程仓库。git remote add upstream https://github.com/user/repo.git24. 移除一个远程仓库
命令git remote remove 远程仓库名示例移除远程仓库origin。git remote remove origin25. 创建一个带有注释的标签
命令git tag -a 标签名 -m “标签注释”示例创建一个名为v1.0的带有注释的标签。git tag -a v1.0 -m 版本1.0发布26. 查看标签列表
命令git tag示例查看当前仓库的所有标签列表。git tag27. 查看标签的详细信息
命令git show 标签名示例查看标签v1.0的详细信息。git show v1.028. 推送本地标签到远程仓库
命令git push 远程仓库名 标签名示例推送本地标签v1.0到远程仓库origin。git push origin v1.029. 推送所有本地标签到远程仓库
命令git push --tags 示例推送所有本地标签到远程仓库。git push --tags30. 删除本地标签
命令git tag -d 标签名示例删除本地标签v1.0。git tag -d v1.031. 删除远程标签
命令git push 远程仓库名 --delete 标签名示例删除远程仓库origin的标签v1.0。git push origin --delete v1.032. 使用Git配置别名
命令git config --global alias.别名 命令示例将git status命令配置为别名st。git config --global alias.st status33. 查看远程仓库信息
命令git remote show 远程仓库名示例查看远程仓库origin的详细信息。git remote show origin34. 创建并切换到一个新分支
命令git checkout -b 分支名示例创建一个名为feature的新分支并切换到该分支。git checkout -b feature35. 重命名分支
命令git branch -m 旧分支名 新分支名示例将旧分支名feature改为new-feature。git branch -m feature new-feature36. 查看远程仓库的提交记录
命令git log 远程仓库名/分支名示例查看远程仓库origin的master分支的提交记录。git log origin/master37. 从远程仓库拉取指定分支到本地
命令git fetch 远程仓库名 远程分支名:本地分支名示例从远程仓库origin拉取develop分支到本地的feature分支。git fetch origin develop:feature38. 查看远程分支列表
命令git branch -r示例查看远程仓库的所有分支列表。git branch -r39. 将指定分支重置到特定提交版本
命令git reset 提交哈希值 --hard示例将当前分支重置到提交哈希值为abc123的版本。git reset abc123 --hard40. 修复合并冲突
命令git merge --abort示例在合并过程中如果出现冲突使用该命令放弃合并并恢复到合并之前的状态。git merge --abort41. 修改最后一次提交的注释
命令git commit --amend示例修改最后一次提交的注释。git commit --amend42. 暂时存储当前的修改
命令git stash save示例暂时存储当前的修改。git stash save43. 查看存储的修改列表
命令git stash list示例查看存储的修改列表。git stash list44. 恢复最近一次存储的修改
命令git stash apply示例恢复最近一次存储的修改到工作区。git stash apply45. 恢复指定的存储的修改
命令git stash apply stash{编号}示例恢复编号为0的存储的修改到工作区。git stash apply stash{0}46. 删除最近一次存储的修改
命令git stash drop示例删除最近一次存储的修改。git stash drop47. 删除指定的存储的修改
命令git stash drop stash{编号}示例删除编号为0的存储的修改。git stash drop stash
4.参考文档
Git 完整命令手册地址http://git-scm.com/docs PDF 版命令手册github-git-cheat-sheet.pdf