Git基础
概述
workspace 工作区:本地电脑上看到的目录;
repository 本地仓库:就是工作区中隐藏的.git文件夹。
index 暂存区:在本地仓库中是.git文件夹,Git自动创建第一个master分支以及指向它的一个指针HEAD。
remote 远程仓库:了解到的是gitlab等web端仓库。
图解命令:
git init
初始化一个git仓库
进入要变成仓库的文件夹
git add .
将文件夹中的文件添加到缓存区
git reset HEAD 文件夹
取消已缓存的内容
git commit -m “备注信息”
将被修改的文件暂存并提到的命令,并在命令行中提供提交注解
git checkout -<文件夹>
放弃未暂存文件的修改
git remote add origin 远程仓库地址
将当前本地仓库与远程仓库进行关联
git push -u origin master(本地仓库分支)
将本地仓库分支的代码推送到远程仓库中
git clone [远程仓库Url]
git clone -b [某分支] [远程仓库Url]
将远程仓库master分支克隆到当前目录
将远程仓库的某分支 克隆到当前目录
Git pull <远程主机名><远程分支名>:<本地分支名>
取回远程主机的远程分支并与本地分支合并
git fetch origin
从远程仓库抓取本地没有的数据,并且更新本地数据库。
fetch命令使用:
https://blog.csdn.net/qq_42780289/article/details/98049574
参考博客:
https://blog.csdn.net/u011535541/article/details/83379151
场景
本地修改未提交,拉取远程代码
暂存本地更改
git stash save "xxxx"
效果:
命令行输出Saved working directory and index state On businessMonitorV1: cat annotation
且提交部分没有显示要提交类;
拉取远程代码
git pull origin 远程分支名
// 拉取并合并
git fetch origin 远程分支名
效果:
From xxx 拉取分支的地址
* branch 分支名 -> FETCH_HEAD
git merge origin/远程分支名
效果:
显示更新 Updating 0cfc08b..effbcd2 Fast-forward
更新文件 xxx.java
3 files changed, 114 insertions(+)
// 更精细控制合并
恢复暂存的更改
git stash pop
效果:
显示 Auto-merging 更新文件
On branch 分支名
Your branch is up to date with 'origin/分支名'.
解决冲突
如果恢复的代码产生更改,需要手动解决冲突;
修改提交本地,远程已有新提交
暂存本地修改,不提交本地仓库
把本地文件存到本地的贮藏区,用时再取出来;
git stash -u
将本地更改存到贮藏区
git stash pop
从贮藏区拉取最新一次存储
执行结果:
Saved working directory and index state WIP on xxx: 8d3ab23 Merge remote-tracking branch 'origin/xxx' into xxx
Git+IDEA
常规操作案例博客:
https://cloud.tencent.com/developer/article/1516709
引入Git
1. 进入setting页面;
2. 配置本地git;
拉取仓库代码
具体的clone方式采用的是:
http克隆
通过Open Git Bash/GUI 实现代码拉取;
参考:https://blog.csdn.net/carfge/article/details/79691360
git提交注释
feat: 新功能(feature)
用于提交新功能。
例如:feat: 增加用户注册功能
fix: 修复 bug
用于提交 bug 修复。
例如:fix: 修复登录页面崩溃的问题
docs: 文档变更
用于提交仅文档相关的修改。
例如:docs: 更新README文件
style: 代码风格变动(不影响代码逻辑)
用于提交仅格式化、标点符号、空白等不影响代码运行的变更。
例如:style: 删除多余的空行
refactor: 代码重构(既不是新增功能也不是修复bug的代码更改)
用于提交代码重构。
例如:refactor: 重构用户验证逻辑
perf: 性能优化
用于提交提升性能的代码修改。
例如:perf: 优化图片加载速度
test: 添加或修改测试
用于提交测试相关的内容。
例如:test: 增加用户模块的单元测试
chore: 杂项(构建过程或辅助工具的变动)
用于提交构建过程、辅助工具等相关的内容修改。
例如:chore: 更新依赖库
build: 构建系统或外部依赖项的变更
用于提交影响构建系统的更改。
例如:build: 升级webpack到版本5
ci: 持续集成配置的变更
用于提交CI配置文件和脚本的修改。
例如:ci: 修改GitHub Actions配置文件
revert: 回滚
用于提交回滚之前的提交。
例如:revert: 回滚feat: 增加用户注册功能