当前位置: 首页 > article >正文

Git版本控制

1. Git概述

Git是一个开源的分布式版本控制系统。

1.1 基本概念

  • 本地仓库:开发人员自己电脑上的仓库。
  • 工作区:包含.git文件夹的目录就是工作区,也称为工作目录,主要用于存放开发的代码。
  • 暂存区:.git文件夹中有一个index文件,就是暂存区,也可以叫stage。暂存区是一个临时保存修改文件的地方。
  • 版本库:.git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等。
  • 代码托管中心:基于网络服务器的远程代码仓库,一般称为远程库。局域网里有GitLab,互联网里有GitHub、Gitee码云。

1.2 主要特点

  • 分布式版本控制:每个开发者都可以在本地拥有一个完整的代码仓库,包含项目的全部历史记录,无需依赖中央服务器,可在无网络连接状态下进行版本控制和代码管理。
  • 快速高效:Git设计优化了存储和传输过程,使用了快速的算法,使其在处理大型项目和大量数据时表现得非常高效。同时,Git的操作命令也非常快速,开发者能够快速进行版本控制操作。
  • 分支管理:Git的分支管理功能非常强大,可以轻松创建、合并和删除分支,使得团队协作更加灵活和高效。每个分支都可以独立进行开发,不影响其他分支的代码。
  • 强大的版本控制功能:Git可以对代码的每一次修改进行版本控制,记录修改的时间、内容、作者等信息,并可以方便地查看和比较不同版本之间的差异。
  • 完整性保证:Git使用哈希值来标识版本,每一次提交的代码都会计算一个唯一的哈希值,保证了版本的完整性和可追溯性。
  • 多种协议支持:Git支持多种协议和方式进行代码的传输和交换,包括HTTP、SSH等,团队成员可以方便地共享代码和进行协作开发。
  • 缓存机制:Git引入了缓存机制,将文件的变化在内存中暂存,只有在需要提交时才会写入磁盘,大大提高了文件的读写效率。
  • 灵活的工作流程:Git提供了灵活的工作流程,可以根据团队的需求配置不同的工作流程,适应不同的开发模式和项目需求。

2. Git基本命令

2.1 基本配置

# 设置用户信息 
git config --global user.name 'zhangsan' 
git config --global user.email 'zhangsan@163.com' 
# 查看配置信息
git config --global user.name 
git config --global user.email  

2.2 初始化仓库

# 初始化git仓库(执行之后会在项目目录下创建“.git”的隐藏目录)
git init 

2.3 文件提交

# 将文件加入暂存区 
git add Hello.java
# 将所有修改加入暂存区 
git add . 
# 将修改提交到本地仓库,提交记录内容为:修改 
git commit --m '修改' 
# 查看修改状态 
git status

2.4 文件恢复

# 修改未提交恢复到未修改前 
git checkout Hello.java
# 提交到暂存区状态退回到未提交 
git reset head Hello.java

2.5 版本退回

# 查看日志,确定需要回到的版本 
git log 
# 回退操作(commitID) 
git reset --hard 91e0b4f23d3edf67ab91f9bc12bda31d743ae77f

3. Git远程仓库

3.1 Git克隆远程仓库

# 克隆远程仓库 
git clone https://gitee.com/zhangsan/test.git

3.2 本地仓库配置到远程仓库地址

# 本地仓库配置到远程仓库地址 
git remote add origin https://gitee.com/zhangsan/test.git

3.3 Git拉取远程仓库内容

# 推送到远程仓库 
git pull

3.4 Git推送到远程仓库

# 推送到远程仓库 
git push -u origin master


http://www.kler.cn/news/365638.html

相关文章:

  • Android 添加菜单开关控制Camera相机和第三方相机
  • GD32学习知识点累计
  • Android13、14特殊权限-应用安装权限适配
  • 【逆向基础】十七、PE文件格式(二)
  • 登录时用户名密码加密传输(包含前后端代码)
  • 模拟信号采集显示器+GPS同步信号发生器制作全过程(焊接、问题、代码、电路)
  • 前沿技术与未来发展第一节:C++与机器学习
  • less 命令无法正确显示中文字符问题
  • 探索 DevOps:从概念到实践
  • java中使用redis的方法
  • ClickHouse在百度MEG数据中台的落地和优化
  • disabled_button
  • 死锁(Deadlock)C#
  • 什么是js中的入口函数
  • Apache HttpClient 和 OkHttpClient 的使用
  • 青少年编程与数学 02-002 Sql Server 数据库应用 13课题、函数的编写
  • Mac电脑:资源库Library里找不到WebServer问题的解决
  • Appium中的api(三)
  • AIGC:开启智能创造的璀璨新篇章
  • uni-app 获取 android 手机 IMEI码
  • 算法笔记day06
  • 【Jenkins】解决使用容器化部署的Jenkins Agent节点时出现的git检查报错
  • 24.redis高性能
  • Visual Studio中无法打开Qt中UI文件,简单快捷处理方法
  • ai智能外呼系统有什么优势?怎么搭建机器人系统?
  • 论文笔记:LaDe: The First Comprehensive Last-mile Delivery Dataset from Industry