资讯动态

Git:Git分支管理规范 / 常用命令

发布时间:2026/9/2 12:26:34 来源:尧图企业网站定制
文章推荐前端-SCMP技术和业务相辅相成 / 一分钟快速读懂SCMP供应链管理专家_scmp补贴-CSDN博客------------一、分支管理Git在创建分支仅是生成了一个指针又称快照有的工具则进行了物理拷贝这样在使用起来就非常的方便。方便的同时问题随之而来如果不加管理那么就会到处开枝散叶完全看不出主干。因此分支管理的需求应运而生。分支管理从某种角度讲可以看作项目管理伴随了一个任务的生命周期。二、如何管理主分支包括master上生产环境验证后合并到的分支Git主分支的名字默认叫做master。它是自动建立的版本库初始化以后默认就是在主分支在进行开发。prd生产环境分支提供给用户的正式版本pre预发布环境uatUser Acceptance Test)​​用户验收测试用户接受测试用户接收测试test测试环境分支dev开发环境分支发版到对应环境的代码只能使用对应的主分支如test环境使用test分支包括小程序。开发主分支从master创建的开发分支命名规则feat-版本号-日期举例git checkout -b feat-M.1.0.0-20210911-ljj master开发分支从开发主分支创建的分支命名规则feat-版本号-日期-姓名拼音举例git checkout -bfeat-M.1.0.0-20210911-ljj feat-M.1.0.0-20210911注开发新任务feat、修改bughotfix伴随着开发的进度从开发分支依次向上合并直到master分支删除开发分支与开发主分支。两个任务同时到uat、不同时间发版这样处理类似解决bug一样。三、如何解决开发分支与主干分支的冲突1、举例开发分支与dev主干分支发生的冲突。2、首先在dev分支的基础上创建一个临时解决冲突的分支我们命名为dev-mid-20210911。3、在编译器把开发分支合并到临时mid分支这是冲突的文件与内容在编译器就可以看到了找到冲突的代码检查不能准确处理的需要与当事人当面一起处理。4、解决冲突后把dev-mid分支合并到dev分支删除dev-mid这样就处理完成了。四、常用命令序号命令描述1git init新建代码库2git clone克隆项目3.1git branch列出本地已经存在的分支并且当前分支会用*标记3.2git branch -r查看远程版本库的分支列表3.3git branch -a查看所有分支列表包括本地和远程remotes/开头的表示远程分支3.4git branch -v查看一个分支的最后一次提交3.5git branch --merged查看哪些分支已经合并到当前分支3.6git branch --no-merged查看所有未合并工作的分支3.7git checkout -b 新分支创建分支的同时切换到该分支上4.1git tag [name]创建tag4.2git tag查看已创建的tag4.3git show tagName查看tag对应的commit id5git reset --hard commit-id(到这里就和reset方法一样了)回退代码6git submodule add [url] [path]添加子模块7.1git pull更新本地代码7.2git fetch拉取仓库里有 本地电脑没有的代码7.3pull 根据不同的配置可等于 fetch merge 或 fetch rebase8git add将当前更改加入到索引9git commit提交当前工作空间的修改内容10git commit将commit的代码提交的远程仓库11.1git reset --hard HEAD^回退到上个版本11.2git reset --hard本地库、暂存区动、工作区都动11.3git reset --mixed本地库、暂存区动工作区不动11.4git reset --soft本地库动暂存区、工作区不动11.5git reset --hard HEAD~3回退到前3次提交之前12.1git push origin HEAD --force推送到远程仓库12.2git push --set-upstream origin dev本地创建了一个名为dev的分支远程仓库没有这个分支push12.3git push --force / git push -f强制推送13git merge合并代码14git merge --abort、git reset --merge取消合并过程15.1git stash将当前分支修改暂存15.2git stash list查看暂存信息15.3git stash apply恢复最近一次修改15.4git stash apply stash{2}恢复索引16.1git config --local remote.origin.url查看代码仓库地址16.2git config --local remote.origin.url http://www.abc.com/abc.git修改代码仓库地址17.1git branch -d 分支名称删除本地分支不能删除当前所在的分支如果要删除必须先切换到其他分支上17.2git branch -D 分支名称强制删除分支17.3git push origin :分支名称删除远程分支分支名称前有个冒号分支名前的冒号代表删除18git status文件、文件夹在工作区、暂存区的状态19git log查看提交历史20git remote -v列出所有配置的远程仓库举例这些用到哪些查一下就ok。五、 commit代码时要根据本次内容不同加上相应的前缀/提交类型序号提交类型 / type解释1feat新功能feature2fix修补bug3modified修补bug4deleted删除文件5merge代码合并6style格式 / 样式不影响代码运行的变动7docs文档documentation8test增加测试9perf性能优化10refactor重构即不是新增功能也不是修改bug的代码变动11build建造/打包工具等变动12ci持续集成相关文件的变动13chore构建过程或辅助工具的变动14revert回滚到上一个版本15workflow工作流相关文件修改16types类型定义文件更改。如 TypeScript 项目中的 .d.ts 文件17wip开发中。当功能尚未完全实现正处于开发过程中时 “Work in Progress”六、四个工作区域1、Workspace 工作区就是你平时存放项目代码的地方2、Index / Stage 暂存区用于临时存放你的改动事实上它只是一个文件保存即将提交到文件列表信息3、Repository 仓库区或版本库就是安全存放数据的位置这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本4、Remote 远程仓库托管代码的服务器可以简单的认为是你项目组中的一台电脑用于远程数据交换七、文件的四种状态1、Untracked:未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.2、Unmodify:文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified.如果使用git rm移出版本库, 则成为Untracked文件3、Modified:文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git heckout即从库中取出文件, 覆盖当前修改4、Staged:暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存,文件状态为Modified八、github常见的几个buttongithub网站中搜索到一个项目之后经常会看到的几个按钮。1、Watch,按钮中有三个选项2、Not watching 默认选中当参与或者被提及到的时候通知。3、Watching所有的更改会话都通知。4、Ignoring忽略所有的会话。5、Star表示赞给它一个星星奖励。6、Fork 克隆别人的代码库到自己的github项目中可以作为子模块的形式使用或二次开发 。7、Pull requests (PR): Fork之后如果希望将自己的修改贡献到原始代码中可以使用pull requests推送请求到原来仓库中然后原始代码的作者根据你提交的内容考虑是否真的放入源码中。它的过程是这样的比如你在GitHub上看到一个很牛X的项目你fork到自己仓库后再改动一些代码然后可以向提交一个pull request。当管理员觉得你的提交太哇噻了就会点击合并然后你就给这个项目贡献了代码了。九、用户信息9.1、查看git本地用户信息git config user.name // 获取当前登录的用户git config user.email // 获取当前登录用户的邮箱9.2、修改git本地用户信息git config --global user.name userName // 修改登陆账号git config --global user.email email // 修改登陆邮箱git config --global user.password password // 修改登陆密码十、Git创建分支10.1、使用 git branch 命令创建分支git branch branch-name10.2、使用 git checkout 命令切换并创建分支git checkout -b branch-name10.3、使用 git clone 命令克隆代码库并切换到该分支git clone -b branch-name repository-url10.4、使用 git branch 命令以某个已有的 commit 为基础创建分支git branch branch-name commit-hash10.5、使用 git checkout 命令以某个已有的 commit 为基础创建分支并切换git checkout -b branch-name commit-hash10.6、修改分支名#git branch -m 旧名称 新名称 git branch -m master main十一、遇到问题11.1、git: rpc failed; http413 rurl 22requested url returned error 413文件太大了有规范的解决方法临时解决的话可以把要提交的内容分批push11.2、.gitignore无效不能过滤某些文件删除已跟踪的文件git rm --cached xxxxxx强制删除已跟踪的文件git rm -f --cached xxxxxx【转】Git移除文件----git rm命令的使用_faithmy509的博客-CSDN博客11.3、忽略git hooks的校验直接commit代码git commit -m feat: 开方内容 --no-verify11.4、出现(end)如图ctrlc 不能管用这时可以使用 :q 退出返回命令行11.5、本地找不到dev分支 / 某分支C:\project\abc\.git\refs\remotes\origin 这个目录下删除dev分支文件执行gitpull再次查看出现了11.6、下载项目失败解决协议://用户名:密码仓库地址http://zhanghu:mimawww.abc.com/saas/abc.git经测试下载成功十二、过程记录Existing branch name, tag, or commit SHA12.1、创建分支可以基于以下几种12.2、tagGit基础 - git tag 一文真正的搞懂git标签的使用_NorthCastle的博客-CSDN博客_git tag怎么使用git tag创建、远程推送、回退以及强推push -f_苦咖啡-coffe的博客-CSDN博客_git tag12.3、git config --global credential.helper store12.3.1、gitlab更改账号之后出现问题如下图12.3.2、输入 git config --global credential.helper store出现弹窗输入用户名再出现弹窗输入密码测试-成功12.3.3、理解git config --global credential.helper store该命令用于设置一个全局的Git凭据Credential帮助程序它可以将凭证信息如用户名和密码保存在本地硬盘上以便下次访问Git仓库时自动获取凭据而不需要每次都输入用户名和密码。具体来说它将凭据存储在 ~/.git-credentials 文件中。12.4、OpenSSL ssL_read: Connection was aborted,errno 10053 报错OpenSSL ssL_read: Connection was aborted,errno 10053 报错_dccose的博客-CSDN博客12.5、git分支命名推荐使用中文吗会有哪些问题不推荐使用中文作为git分支名。虽然git支持使用中文作为分支名但这可能会引起一些问题1、如编码问题可读性问题2、不同操作系统对于中文字符的处理方式不同可能会导致Git在某些情况下无法正常工作3、中文字符可能会导致一些问题比如特殊字符可能会引起解析错误4、在多人协作的项目中使用中文分支名称容易造成沟通不畅特别是在团队成员中有不同语言背景的情况下5、对命令行操作、自动化脚本都不友好建议使用英文字母、数字、短横线、下划线等简单的字符作为分支名以便其他人也能够轻松理解和使用。如果英文不好可以使用翻译工具也可以使用拼音。12.6、git安装教程git安装 / 设置环境变量 / 使用_git 环境变量-CSDN博客12.7、阿里镜像CNPM Binaries Mirror12.8、Delete source branch when merge request is acceptedsettings - merge requests取消勾选保存测试再次合并已不再默认选中了12.9、新项目push代码失败 error: failed to push some refs to ...! [remote rejected] master - master (pre-receive hook declined)error: failed to push some refs to http://a.b.coam/a-b-c/m-basic-vue3-pc.git解决settings--repository--protected branches--虽然此时没有分支/新的项目依然可以设置设置好之后代码可以push成功了。12.10、error: bad signature 0x00000000 fatal: index file corrupt解决【git commit错误】error: bad signature 0x00000000 fatal: index file corrupt原因分析及解决方案-CSDN博客12.11、电脑突然自己蓝屏本地工作区有没有提交的代码重启电脑后git报错如图解决方法一、1、备份没有提交的代码2、移除损坏的索引文件rm -f .git/index git reset3、检查工作目录git status方法二、重新克隆仓库12.12、git node : internal/errors:465pnpm run dev 启动项目时遇到报错 git node : internal/errors:465在使用 Git 时遇到 internal/errors:465 这类错误通常是由于 Node.js 环境或相关依赖问题引起的。这个错误提示通常不是一个标准的 Git 错误而是可能与 Node.js 的内部错误有关。node -v 检查版本本文遇到问题为 vue3 ts 项目使用 node 16.15.0 版本过低启动项目失败使用 node 20.14.0 启动成功问题找到原因并得到处理12.13、could not connect to server解决办法重启电脑三、欢迎交流指正关注我一起学习十四、参考连接vue3ts约定式提交git husky gitHooks_snowli的博客-CSDN博客前端CICDVMwarecentos8stream部署gitlab_snowli的博客-CSDN博客git.gitkeep_.gitkeep 怎么看到_snowli的博客-CSDN博客gitlab删除项目_gitlab delete project_snowli的博客-CSDN博客步骤记录git上传项目_snowli的博客-CSDN博客GitHub创建分支_github怎么创建分支_snowli的博客-CSDN博客git: 修改gitlab仓库提交地址_git修改提交地址_snowli的博客-CSDN博客gitHooks: commit-msg_snowli的博客-CSDN博客【马士兵】起步的Git入门详细教学真的简单_哔哩哔哩_bilibiligit 学习笔记 —— 保留/丢弃当前分支修改并切换至其他分支 - yhjoker - 博客园git创建分支Git分支管理规范_git 分支名称可以为中文吗_hursing的博客-CSDN博客

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价