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、通信协议及开发工具链等核心内容。

全部评论

相关推荐

03-31 14:46
已编辑
门头沟学院 Web前端
励志成为双港第一ja...:这其实很正常,离的太远了,他认为你不会来,就为了混个面试,而且成本很高,实习生都优先选本地高校。吃了地域的亏,所有很多时候地域可能比院校层次更重要。
点赞 评论 收藏
分享
评论
4
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务