11 Git
一、Git 是什么?与 SVN 有什么区别?
对比 |
Git |
SVN |
类型 |
分布式版本控制 |
集中式版本控制 |
离线工作 |
✅ 支持 |
❌ 必须联网 |
分支操作 |
轻量、秒级切换 |
较重、慢 |
提交速度 |
快(本地) |
慢(依赖网络) |
数据完整性 |
SHA-1 校验 |
较弱 |
典型平台 |
GitHub、GitLab |
— |
二、Git 的四个工作区域?
区域 |
说明 |
工作目录 |
实际编辑文件的目录 |
暂存区 |
准备提交的文件 |
本地仓库 |
本地版本库 |
远程仓库 |
GitHub/GitLab 等远程服务器 |
┌─────────────┐ git add ┌─────────────┐
│ 工作目录 │ ───────────→ │ 暂存区 │
│ Working Dir │ │ Staging │
└─────────────┘ └──────┬──────┘
↑ │ git commit
│ git checkout ↓
┌─────┴───────┐ ┌─────────────┐
│ 远程仓库 │ ←────────── │ 本地仓库 │
│ Remote │ git push │ Repository │
└─────────────┘ └─────────────┘
三、git 流程图
四、命令
1)将目录设置为本地仓库:git init
2)工作区
当文件被修改,而并没有 add 时候:status 为 unstaged (未暂存)。
当文件被创建,而没有 add 的时候:status 为 untracked (未跟踪)。
3)基础命令
(1)查看修改的状态
git status:查看修改的状态(暂存区、工作区)。
(2)查看提交日志
git log:查看提交日志。 options: --all:显示所有分支 --pretty=oneline 将提交信息显示为一行 --abbrev-commit 使得输出的commitId更简短 --graph 以图的形式显示
(3)版本回退
# 查看提交历史 git log --oneline # 回退方式 1:git reset git reset --soft HEAD~1 # 回退,保留修改在暂存区 git reset --mixed HEAD~1 # 回退,保留修改在工作区(默认) git reset --hard HEAD~1 # 回退,丢弃所有修改 # 回退方式 2:git revert(推荐用于已推送的提交) git revert <commit-id> # 创建新提交来撤销指定提交
4)分支
(1)查看本地分支
git branch
(2)创建本地分支
git branch 分支名
(3)切换分支(checkout)
git checkout 分支名 我们还可以直接切换到一个不存在的分支(创建并切换) git checkout -b 分支
(4)合并分支
一个分支上的提交可以合并到另一个分支 git merge 分支名称
(5)删除分支
不能删除当前分支,只能删除其他分支 git branch -d b1 删除分支时,需
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
C++/嵌入式开发 秋招面经 文章被收录于专栏
一名985硕,在25年秋招中斩获多个C++/嵌入式开发Offer。本专栏将分享我的面经,涵盖C/C++、操作系统、计算机网络、ARM体系与架构、Linux应用/驱动开发、Qt、通信协议及开发工具链等核心内容。
