Git 分布式版本控制

1、优势

|---------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 本地版本控制 | 只在本地电脑维护多版本,不能共享,且容易出错 |
| 集中式版本控制 | 将历史版本等信息统一维护到一台机器上,每次只拉取当前版本内容得到临时拷贝(不携带历史提交信息等),可共享,但同步必须使用服务器,单点故障数据全丢失 |
| 分布式版本控制 | 本地拉取得到完整仓库(携带所有历史版本信息),相互之间可直接通过服务调用同步更新,但一般会设一台服务器作为公共交换点,但并不是一定需要 可共享,同步可不经过服务器,单点故障可容错 |

2、远程仓库 VS 本地仓库

分布式版本控制一般会设置公共交换点,如github,叫做远程仓库

自己电脑上的仓库叫做本地仓库

远程仓库的分支叫做远程分支

本地仓库的分支叫做本地分支

git pull 将远程仓库拉取到本地仓库

git push 将本地仓库推送到远程仓库

3、git快照流

git通过快照保存不同版本,头指针HEAD指向当前分支版本

4、工作区 VS 暂存区 VS 提交区

工作区:当前的目录,做修改的地方

暂存区:git add 后修改内容存入暂存区

提交区:git commit -m "描述信息" 暂存区内容提交到仓库内

5、常见指令

remote:操作远程仓库的命令前缀

origin:git为远程仓库起的默认名

|------------------------------------------------------------------|-------------------|
| | |
| git init | 初始化,创建.git |
| git clone 远程仓库地址 | |
| git remote add origin 远程仓库地址 | 将本地仓库与远程仓库建立对应关系 |
| git pull origin 远程分支名 git pull | 拉取并自动合并 |
| git fetch origin 远程分支名 git fetch + git reset --hard origin/远程分支名 | 拉取,但不合并 + 重置头指针 |
| git push origin 本地分支名:远程分支名 git push | |
| git branch --set-upstream-to=origin/远程分支名 本地分支名 | 将本地分支与远程分支建立对应关系 |
| git status | |
| git diff | |
| git add --all | |
| git commit -m "描述信息" | |
| git checkout -b 分支名 | |
| git checkout 分支名 | |
| git branch -D 分支名 | |
| git merge | 合并两个分支的变更记录 |
| .gitingore | |
| git rm 文件名 | 将文件从暂存区移除 |
| git log | |
| 撤销已提交 | |
| 撤销已推送 | |
| git stash + git stash pop | 暂存未提交内容 + 恢复未提交内容 |
| | |

6、git checkout -b 分支名 VS git checkout 分支名

已暂存、已修改 的内容属于工作区,不属于任何一个分支

如果不想让未提交内容跟着切换分支,使用 git stash 暂存未提交内容 + 切换到目标分支 + git stash pop 恢复未提交内容

场景 git checkout 已有分支 git checkout -b 新分支
创建分支 ❌ 不创建 ✅ 创建
切换分支 ✅ 切换 ✅ 切换
无冲突时,未提交内容 ✅ 跟随切换 ✅ 跟随切换
有冲突时,未提交内容 ❌ 拒绝切换 ❌ 拒绝切换

具体场景:

在test1分支上新建test2分支 未暂存和已暂存的内容都会带到test2分支上 然后此时checkout test1 这些内容依旧会被带到test1分支上

7、合并冲突

同一文件的变更记录有冲突

相关推荐
ElevenS_it18816 小时前
日志在哪里找?分布式环境下日志采集断裂的5个排查路径
运维·网络·分布式
Jackyzhe17 小时前
从零学习Kafka:生产者分区机制
分布式·学习·kafka
以为你知道啊17 小时前
mini-job极简分布式延迟任务队列 — 基于 Redis,支持 Cron 周期任务、异步协程和多执行器
redis·分布式·junit
Francek Chen17 小时前
【大数据存储与管理】NoSQL数据库:05 NoSQL的三大基石
大数据·数据库·分布式·nosql
FserSuN17 小时前
Git Worktree 使用学习
git·学习
Z文的博客17 小时前
嵌入式LINUX QT 开发 .gitignore 文件编写指南
linux·git·qt·elasticsearch·嵌入式
人道领域17 小时前
【黑马点评日记】Redis分布式锁终极方案:Redisson全面解析(含源码解析)
java·数据库·redis·分布式·缓存
Albert Edison17 小时前
【RabbitMQ】RPC 通信(使用案例)
分布式·rpc·rabbitmq
前端双越老师17 小时前
3 个命令 7 个步骤,学会 git worktree 并行开发
git·ai编程·全栈
天下财经热18 小时前
2026年4月分布式工商业光伏建设企业技术解析!
分布式