Git的基础概念与命令
git基础概念
git简介
Git 是一个当代最先进、最主流的分布式版本控制系统,它用于追踪文件的变化历史,特别适用于程序员和团队协作开发的场景。
通过Git,我们可以记录文件的每一次修改,并能随时回溯到历史版本。这就像是我们给文件装上了一个“时间机器”,可以随时查看和恢复到过去的状态。并且,如果是多人同时编辑文件,Git 会帮你合并不同人的修改,避免覆盖和冲突。
因此,Git 就像是一个“超级版的文件管理器”,它不仅能帮你管理文件的历史版本,还能让你和团队成员高效地协作开发、解决冲突。
所以,对于程序员来说,Git是开发流程中不可或缺的一部分。只要你是一个程序员,或者你想要从事计算机行业,那么Git 都是你必须学会的基础技能。
git的基本概念
仓库
存储和管理文件的地方,里面保存另所有的文件、版本记录和历史信息
本地仓库:自己的极其或电脑上创建的仓库,存储着本地对项目的所有文件和修改历史,每当提交代码时,git会将文件保存在本地仓库中
远程仓库:存放在服务器上的仓库,通常用于团队合作中的代码共享和同步(如:github)
工作目录
当前正在编辑的文件所在的地方,对文件进行的修改都发生在工作目录中。
它就像是“项目文件”,里面有正字啊开发的代码和其他资源。当修改了文件时。修改只会体现在工作目录中。git不会立即跟踪这些修改,直到将它们添加到暂存区并提交。
暂存区
一个临时的存放区,用来记录准备提交的文件的修改,当在工作目录中修改文件后,需要通过’git add’命令将这些修改添加到暂存区,之后在通过git commit命令提交修改,暂存区的内容就会被保存到本地仓库
master和HEAD
在git中,master(或main)是默的主分支。当创建一个新的git仓库时,git默认会有一个分支,这个分支的名字在较早的git版本中是master,在新版本中默认使用main作为主分支名称
HEAD代表“当前所处的位置”,它是一个指针,指向正在工作的分支的最新提交。例如,多次执行了git commit提交操作,那么就会形成一条时间线,每次提交完,HEAD就会移动到当前分支的最新一次提交的位置
分支
git分支就像一颗大树,主干就是项目的主分支(通常是master或main),这跳主干代表项目的主要发展方向,也就是所有代码的基础。
当要开发一个新功能或者修复bug时,就像给树长出一根新树枝,这根树枝就是从主干分叉出来的,独立与主干,不会影响主干的健康成长。
当在树枝上完成了开发,并且确认这部分改动没问题,就可以把这根新枝干融入主干,变成主干的一部分
git的操作与命令
git配置文件
在git安装完成之后,需要对git进行一些配置操作。而在这之前,需要先来了解git的三个主要的配置文件。
系统全局配置(-system):包含了系统内的所有用户和所有仓库的配置信息,系统配置存放在Git安装目录下C:IProgram Files|Gitletclgitconfig。
用户全局配置(-global):包含了当前用户的所有Git 仓库配置,它存放在用户目录下:C:Nsersl[系统用户名J。gitconfig。
仓库配置(-local):仓库级配置仅适用于某个 Git 仓库,它存放在项目目录下:项目根目 #/。git/config
三个配置文件的优先级为:系统全局配置<用户全局配置<仓库配置
配置命令
1 | # 查看当前git 配置的所有信息 |
git基本操作
初始化和创建仓库
1 | #初始化仓库 |
文件的跟踪与管理
添加到暂存区
1 | # 添加所有⽂件 |
提交
1 | git commit -m "描述本次修改的内容" |
查看日志
1 | # 包括提交的id,作者,时间和提交信息 |
查看文件变更
1 | # 查看文件修改的差异,删除的行,用-标记,新增的行,用+标记 |
查看当前文件的状态
1 | git status |
分支操作
注:分支是git中的隔离机制,主分支是程序的稳定版本,其他分支是新功能的开发其他分支的操作不会影响主分支的内容,除非合并
创建分支
1 | # 创建分支 |
分支合并
1 | # 在主分支上运行 |
删除分支
1 | # 未合并会阻止删除 |
标签操作
创建标签
1 | # 指向当前最新的commit |
查看标签
1 | git tag |
推送标签到远程仓库
1 | # 推送单个 |
删除标签
1 | # 本地 |
撤销和恢复
撤销工作区
1 | # 恢复为最后一次提交的状态 |
撤销暂存区
1 | git reset |
退回提交
1 | # 软模式,仅撤销提交,代码保留在暂存区,工作区保留修改 |
远程仓库操作
1 | # 克隆远程仓库 |
分支流
主分支(master/main)
只包含发布到生产环境的正式版本,不能直接push代码,只能请求合并,且只接受hotfix、release分支的代码合并,长期存在
热修复分支(hotfix)
从主分支派生,快速修复线上紧急问题,修复后合并并返回主分支和开发分
发布分支(release)
从开发分支派生,准备发布的临时分支,用于测试和Bug的修复
开发分支(develop)
用于日常开发,集成新功能,始终保持最新开发状态,长期存在
功能分支(feature)
从开发分支派生,开发具体新功能



