有关git的基础小结
Git
1. Git 的基本概念
Git 是一个开源的分布式控制系统(版本管理工具),是目前使用范围最广的版本管理工具。
它的作用就是对文件进行版本的管理,由于每次项目上线可能会产生一些无法预料的bug,这时就需要选择上一个正常的版本进行回滚。而Git的存在,就是为让开发人员能够方便地在不同版本间进行切换。码云、Github在某种程度上来说,就是代码的网盘,作为一些开源开发商代码发布、存放、征集bug及意见的功能。
除了版本管理这项功能,Git 在团队协作开发上也有很大的优势。
除了上面的优点,Git还有一个特殊的地方 —— 分布式管理。SVN是另外一个版本管理系统,但是它必须要在特定的网络上才能进行开发和管理。一旦服务器宕机或者网路崩溃,版本控制这个功能就失效了。Git的分布式管理,可以让每个开发人员将仓库的代码全部下载到本地,包括这个项目的每个分支、版本更新的记录。如果线上的环境崩, 完全可以通过本地选择一个正常的历史记录进行回滚,然后去有网的地方将代码上传更新。
2. Git 工作原理
2.1 工作区
Git 在本地初始化一个仓库后,会存在三个工作区域:工作目录、暂存区、本地仓库,当关联远程仓库时,就会有一个远程仓库。
- 工作区(Workspace):平时存放、编写代码的地方;
- 暂存区(Stage/Index):用于临时存放代码的改动的地方;
- 本地仓库(Repository):用于存放所有版本的数据;
3. Git 的使用
3.1 Git 的配置
在上传代码前,首先要进行Git的配置,否则代码仓库不知道你的身份,这样就没法记录谁上传谁修改了代码。这个配置只要在安装Git后配置一次即可。
git config --global user.name "lyan"
git config --global user.email "1055869654@qq.com"
要检查配置是否完成,可以通过以下命令查看
git config -l
如果在这行信息最后,出现刚刚配置的用户名和邮箱,则代表配置成功
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
http.sslbackend=openssl
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
core.autocrlf=true
core.fscache=true
core.symlinks=false
pull.rebase=false
credential.helper=manager-core
credential.https://dev.azure.com.usehttppath=true
init.defaultbranch=master
user.name=lyan
user.email=1055869654@qq.com
3.2 创建项目
# 在当前文件夹下新建 .git 仓库
git init
# 在当前文件夹下创建一个名为bluej的文件夹,里面有 .git
git init bluej
3.3 关联远程仓库
git remote add origin 你的仓库地址
3.4 git 四步走
git add . # 提交当前目录下的所有文件到暂存区
git commit -m "feat:新增了头部" # 将暂存区的文件提交到本地仓库
git pull # 将远程仓库的代码拉取到本地进行同步
git push # 将本地仓库的代码推送到远程仓库
git push -u origin master # 如果是第一次新建仓库,推送时要添加关联分支
3.4.1 修改 commit 信息
如果commit的备注信息打错了,可以通过以下命令进行修改
git commit --amend
首先,默认会打开一个 vim 编辑器,然后输入 i
,会发现左下角变成了 -- INSERT --
,再更改备注信息即可。修改完成后,先按下 ESC
,退出编辑模式,再输入 :wq
回车进行保存。
3.5 文件状态
git status
- Untracked:文件没有被跟踪,提交本地仓库到远程仓库时,Untracked 的文件不会被上传;
- Modified:文件已被编辑(它已被git跟踪);
3.6 忽略文件
如果要忽略某些文件,不需要进行git的上传,则可以在根目录下新建一个文件 .gitignore
.DS_Store # 忽略所有 .DS_Store 文件
/test # 忽略根目录下 test 文件夹
test/ # 忽略所有 test 文件夹
*.html # 忽略所有以 html 为后缀的文件
3.7 分支
3.7.1 查看分支
# 查看本地所有分支
git branch
# 查看远程所有分支
git branch -r
3.7.2 新建和切换分支
# 新建分支
git branch 分支名称
# 切换分支
git checkout 分支名称
# 新建并切换分支
git checkout -b 分支名称
3.7.3 上传分支
git push origin 分支名称
3.7.4 删除分支
# 删除本地分支
git branch -d 分支名
# 删除远程分支
git branch -dr [remote/分支名] # 只是删除本地的远程分支记录
git push origin --delete [分支名] # 真正的删除远程分支
3.7.5 合并分支
# 先切换到你的分支下,然后再把其他分支的内容合并到你的分支上
git merge 分支名称
3.8 版本回退
要进行版本回退,需要查看日志找到需要回退的那个版本的 hash 值
git reset --hard 哈希值
3.8.1 查看日志
# 查看简略日志
git reflog
# 查看详细日志
git log
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南