Git学习

Git介绍

1. Git版本控制介绍

版本控制是一种记录一个或若干个文件内容变化,以便将来查阅特定版本修订情况
为什么要有版本控制?

版本控制可以将某个版本回退到原来节点的状态,这样对于版本管理、错误处理、代码备份都是非常有好处的,以及处理回滚,倒退等等。 比如1.1、1.2、2.6等版本控制

版本控制的分类:

  1. 集中化版本控制系统

比如cvs、svn等等,都有一个中央服务器,不同的开发人员都可以连接到这台服务器,开发人员可以上服务器提交东西,同时也可以从服务器上下载东西。同时也可以管理每个开发者的权限。

存的是版本与版本之间的差异,
缺点:

如果服务器出现单点故障,那么在这一小时内谁都无法提交更新,也就无法进行工作。

  1. 分布式的版本控制

比如说Git、Bitkeeper,这类系统的特点就是客户端不只是提取最新版本的文件快照,而是把代码仓库完整地镜像下来。同时镜像的存储也通过压缩算法压缩到极致了,体积只是svn版本的几倍,但是存储容量却是svn的好几倍。

同时安全性也非常高,每个客户端都是一个服务器,即使没有网络的情况下也能修改。也是一个去中心化的思想。分布式的版本控制在管理项目时不是存放的版本与版本之间的差异,而是存的索引。

2.Git简史

作者:

同时也是linux内核的作者,膜拜大佬。

3.Git安装

从官网上下载,
https://git-scm.com/

4.Git结构

(本地结构)

跨团队合作:

托管中心种类:

局域网环境下:可以搭建GitLab作为代码托管中心。

外网环境下:可以由GitHub或者Gitee作为代码托管中心,GitHub或者Gitee是现成的托管中心。

5. Git常用命令

git add ./文件名 :将文件提交到暂存区中
git commit -m "注释" :将暂存区的内容提交到本地库
git status :查看的是工作区和暂存区的状态
git log:从近到远展示操作的日志
git log --pretty=oneline:

git reflog :指针回到当前这个版本需要走多少步

git reset --head 索引 :前进或后退历史版本

hard 参数:本地库指针移动的同时,重置暂存区,重置工作区

mixed参数:本地库的指针移动的同时,重置暂存区,但是工作区不动

soft参数:本地库指针移动的时候,暂存区、工作区都不动

git diff 文件名:比对工作区和暂存区文件的差异
git diff:比较的是工作区和暂存区所有文件的差异
git diff [历史版本][文件名] -->比较暂存区和工作区中的内容

6.分支

分支:在版本控制的过程中,使用多条线同时推进多个任务,这里说的多条线,就是多个分支。


git branch -v :查看分支
git branch branch01 :创建分支
git checkout 分支名 :切换分支
git merge 分支名:将分支合并到当前的分支中

git pull: 远程库的拉取可以直接利用pull命令来完成

pull=fetch+merge操作

git fetch :抓取远程库的内容,只是抓取下来,但是不会更新到本地分支。

如何避免冲突:

在push之前,先pull操作。

相关推荐
一隅论数智1 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
XiHongShi20161 天前
STM32F407 RTC定时器例程,建议保存
stm32·单片机·学习
Winlifes1 天前
我给 Codex 做了一个 Git 面板:分支树、提交历史和工作区操作
git
爱吃苹果的日记本1 天前
离散数学第六课
学习·离散数学
AI职业加油站1 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
旖旎夜光1 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
奇思妙想聪明勤奋的小羊1 天前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型
霍霍的袁1 天前
【C++】map 和 set 的使用 | 从用法到底层
开发语言·c++·学习·visual studio
彧azz1 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试