Git分支管理与常用命令

article/2025/11/8 16:32:20

 一、分支管理

Git在创建分支仅是生成了一个指针又称快照(有的工具则进行了物理拷贝),这样在使用起来就非常的方便。方便的同时问题随之而来,如果不加管理,那么就会到处开枝散叶,完全看不出主干。因此,分支管理的需求应运而生。分支管理从某种角度讲可以看作项目管理,伴随了一个任务的生命周期。

二、如何管理

主分支包括:

master:上生产环境验证后合并到的分支

Git主分支的名字,默认叫做master。它是自动建立的,版本库初始化以后,默认就是在主分支在进行开发。

prd:生产环境分支,提供给用户的正式版本

pre:预发布环境

uat(User Acceptance Test)​​:客户体验环境分支

test:测试环境分支

dev:开发环境分支

开发主分支:从master创建的开发分支,命名规则:feat-版本号-日期

举例:git checkout -b feat-M.1.0.0-20210911-ljj master

开发分支:从开发主分支创建的分支,命名规则:feat-版本号-日期-姓名拼音

举例:git checkout -b feat-M.1.0.0-20210911-ljj feat-M.1.0.0-20210911

注:开发新任务:feat、修改bug:hotfix

伴随着开发的进度,从开发分支依次向上合并,直到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]创建tag
4.2git tag查看已创建的tag
4.3git show tagName查看tag对应的commit id
5

git reset --hard commit-id 

(到这里就和reset方法一样了)

回退代码
6git submodule add [url] [path]添加子模块
7.1git pull更新本地代码
7.2git fetch拉取仓库里有 本地电脑没有的代码
7.3pull 根据不同的配置,可等于 fetch + merge 或 fetch + rebase
8git 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的分支,远程仓库没有这个分支,push
13git merge合并代码
14

git 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查看提交历史

举例这些,用到哪些查一下就ok。

五、 commit代码时要根据本次内容不同加上响应的前缀

feat:新功能

fix:修改bug

docs:文档修改

style:代码格式修改,注意不是css修改(例如分号修改)

refactor:代码重构(重构,在不影响代码内部行为、功能下的代码修改)

perf:更改代码,以提高性能

test:测试用例新增、修改

workflow:工作流相关文件修改

ci:持续集成想相关文件修改

chore:其他修改(不在上述类型的修改)

types:类型、特征

build:影响项目构建或依赖项修改

六、四个工作区域

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常见的几个button:

github网站中,搜索到一个项目之后,经常会看到的几个按钮。
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'  // 修改登陆密码

十、遇到问题:

10.1、git: rpc failed; http413 rurl 22requested url returned error 413

文件太大了,有规范的解决方法

临时解决的话可以把要提交的内容分批push

10.2、.gitignore无效,不能过滤某些文件(删除已跟踪的文件)

git rm --cached xxxxxx

【转】Git:移除文件----git rm命令的使用_faithmy509的博客-CSDN博客

10.3、忽略git hooks的校验,直接commit代码

git commit -m "feat: 开方内容" --no-verify

10.4、出现(end)如图,ctrl+c 不能管用,这时可以使用  :q  退出,返回命令行

十一、其他

Existing branch name, tag, or commit SHA

11.1、创建分支,可以基于以下几种:

11.2、tag

Git基础 - git tag 一文真正的搞懂git标签的使用_NorthCastle的博客-CSDN博客_git tag怎么使用

git tag创建、远程推送、回退以及强推push -f_苦咖啡-coffe的博客-CSDN博客_git tag

十二、欢迎交流指正,关注我,一起学习。 

十三、参考文献:

vue3+ts:约定式提交(git husky + gitHooks)_snow@li的博客-CSDN博客

前端CICD:VMware(centos8stream)部署gitlab_snow@li的博客-CSDN博客

git:.gitkeep_.gitkeep 怎么看到_snow@li的博客-CSDN博客

gitlab删除项目_gitlab delete project_snow@li的博客-CSDN博客

步骤记录:git上传项目_snow@li的博客-CSDN博客

GitHub创建分支_github怎么创建分支_snow@li的博客-CSDN博客

git: 修改gitlab仓库提交地址_git修改提交地址_snow@li的博客-CSDN博客

gitHooks: commit-msg_snow@li的博客-CSDN博客

【马士兵】起步的Git入门详细教学,真的简单_哔哩哔哩_bilibili

git 学习笔记 —— 保留/丢弃当前分支修改并切换至其他分支 - yhjoker - 博客园


http://chatgpt.dhexx.cn/article/R1Y045T5.shtml

相关文章

复杂项目的版本管理及git分支管理建议

在复杂项目中,特别是多团队的快速迭代中,版本管理与分支管理,总是我们难以回避的问题,这里分享一下我们在团队中使用的规范,以及对应的每一步的步骤。 为什么需要GIT使用建议 团队开发中,遵循一个合理、清…

2022新版Git教程 从入门到实战(三)Git分支管理

🐟 个人主页 :https://blog.csdn.net/qq_52007481⭐个人社区:【小鱼干爱编程】📰最近专栏:Git教程专栏 文章目录 分支工作的工作流程Git分支管理分支的好处 前期准备查看分支分支创建分支转换在新分支中添加记录切换回…

Git 分支管理最佳实践(转载)

前言 Git 是目前最流行的源代码管理工具。大量的软件项目由 GitHub、Bitbucket 和 GitLab 这样的云服务平台或是私有的 Git 仓库来管理。在使用 Git 时通常会遇到的一个问题是采用何种分支管理实践,即如何管理仓库中作用不同的各类分支。和软件开发中的其他实践一样…

Git 分支管理策略汇总

原文链接: Git 分支管理策略 最近,团队新入职了一些小伙伴,在开发过程中,他们问我 Git 分支是如何管理的,以及应该怎么提交代码? 我大概说了一些规则,但仔细想来,好像也并没有形成…

Git分支管理

四、分支管理 分支的存在,极大的强化了不同开发者的协作管理,在一个功能的开发过程中,可以在一个单独的分支上完成,这样不影响主分支的开发,待功能完成后再将分支的内容合并到主分支。 每次提交到分支,Gi…

git的分支管理

这篇文章主要想讲一下git下的分支管理,因为分支管理是你在日常工作中必不可少的一项操作,觉得自己之前了解的不是很多,这次便决定利用一些细碎的时间好好去再次学习巩固一下,初衷也是为了加深自己的理解,便写下此文&am…

【Git】“分支” 如何管理和使用?这一篇就够了~

目录 一、什么是分支? 二、分支的操作 2.1、查看分支 2.2、创建分支 2.3、切换分支 和 修改分支 2.4、合并分支 2.4.1、正常合并 2.4.2、合并冲突 三、创建分支和切换分支的底层原理 一、什么是分支? 在版本控制中,我们可以针对每个任…

管理Git的分支

目录 一、本地分支(local branches)管理 1.1 查看和建立分支( git branch) 1.2 分支中提交的浏览与比较(git log) 1.3 切换当前分支(git switch)与合并分支(git mer…

常用的git分支管理方法都在这了

一、分支管理定义 几乎每一种版本控制系统都以某种形式支持分支,一个分支代表一条独立的开发线,使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作,Git 分支实际上是指向更改快照的指针。 其作用显然…

前端安全之xss与xsrf

提到前端安全,往往离不开xss(跨站脚本攻击)、xsrf(跨站伪造请求),在此记录一下关于前端安全的学习过程。 什么是xss? 跨站脚本攻击(Cross Site Scripting),为了不和css(层叠样式表)混淆,故记为xss。其原理是利用用户…

前端安全问题及防范

目录 XSS攻击反射型存储型DOM型总结 CSRF攻击点击劫持CDN带来的风险文件上传漏洞本地存储信息泄露 XSS攻击 XSS(Cross-Site Scripting,跨站脚本),是比较常见的安全漏洞问题,其主要的攻击方式是通过表单或者页面url参数来注入一些可执行的代码&#xff0…

前端安全之csp

最近前端项目被白帽子使用appscan扫到安全漏洞,老大勒令我们抓紧修复,我们先来看两个级别比较低的漏洞 看到这儿对于我个渣渣前端来说是懵逼的,难道我设置一下http header 就ok了 简单来介绍下什么叫做csp内容安全策略 (CSP) 是一个额外的安全层,用于检测并削弱某些特定类型…

Web前端安全系列之:XSS攻防及Vue防御(万字长文)

关注公众号 笑果杂谈 前言 Web 安全的兴起 Web 攻击技术的发展也可以分为几个阶段。在 Web 1.0 时代,人们更多的是关注服务器端 动态脚本的安全问题,比如将一个可执行脚本(俗称 webshell)上传到服务器上,从而获得权…

前端安全:CSRF、XSS该怎么防御?

近几年随着业务的不断发展,前端随之面临很多安全挑战。我们在日常开发中也需要不断预防和修复安全漏洞。接下来,梳理一些场景的前端安全问题和对应的解决方案。 XSS攻击介绍 XSS是后端的责任,后端应该在用户提交数据的接口对隐私敏感的数据…

如何解决Web前端安全问题?

我国网络技术水平的提升,带动着WEB前端业务量的显著增长,人们对于网络服务的需求也日益复杂,与此同时,越来越多的黑客出现,其攻击水平也有了明显提升,WEB前端也成为了众多黑客进行网络攻击的主要目标。 因…

前端安全问题的解决方法

目录 前言: 1.常见的安全性问题 2.XSS攻击的解释和解决方法 2.1 XSS攻击是什么: 2.2 经常出现的原因:用户输入,如input框 2.3 防御方式: 3.CSRF(跨站请求伪造)的解释和解决方法 3.1 是什么…

前端常见的安全问题

一、XSS (Cross-Site Scripting)跨站脚本攻击 通常指通过“HTML注入”篡改了网页,插入了恶意的脚本,从而在用户浏览网页时,获取用户信息、控制用户浏览器等的一种攻击 分类:持久性(存储型xss&…

前端常见安全性问题

文章目录 一、常见的安全性问题二、XXS攻击(Cross Site Scripting)(跨站脚本攻击)三、CSRF安全漏洞(跨站请求伪造)四、文件上传漏洞五、限制URL访问,越权访问六、不安全的加密存储七、SQL注入攻…

前端WEB安全

一、浏览器安全 首先了解前端web安全知识,比不可绕开的基础就是同源策略了,同源策略(Same Origin Policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功…

前端安全问题以及解决方案汇总

随着大前端的快速发展,各种技术不断更新,前端的安全问题也值得我们重视。今天我们来聊一聊前端常见的7个安全方面问题: 1.iframe 2.opener 3.CSRF(跨站请求伪造) 4.XSS(跨站脚本攻击) 5.ClickJa…