项目管理利器 Git

news2025/4/7 23:58:52

一、序言

今天聊聊 Git。

二、开发的问题

  1. 在开发项目时,我们的代码都是直接放在本地的机器上的。如果本地机器出现了问题,怎么办?
  2. 在企业中,开发项目都是团队协作,一个团队共同维护一个项目该如何处理?
  3. 团队共同维护一个项目,大概率会发生冲突(例如:A 与 B 都改了同一行代码)该如何解决?
  4. 项目是不断演进的,但是新版本有问题我们需要回溯到某个时间节点的某个版本呢?

三、什么是版本控制

版本控制(Version Control System,简称 VCS)是一种管理文件和代码变化的系统,它允许开发者跟踪文件的修改、恢复先前的版本以及比较不同版本之间的差异。版本控制系统记录了文件的历史变更,使得开发者可以方便地回溯到特定时间点的代码状态,从而更好地管理项目的发展历程。
版本控制系统通常包括以下核心功能:

  1. 版本追踪:记录文件的每一次修改,包括修改内容、修改者和修改时间等信息。
  2. 版本恢复:允许开发者在需要时回溯到历史版本,恢复特定时间点的文件状态。
  3. 分支管理:支持创建分支,使得开发者可以并行开发不同的功能或修复不同的 BUG,而不会影响主干代码。
  4. 代码合并:允许将不同分支或不同版本的代码合并到一起,确保代码的一致性和完整性。
  5. 冲突解决:当多个开发者同时修改了同一个文件,版本控制系统可以帮助解决代码冲突,确保修改的有效合并。
  6. 团队协作:提供多用户协作的支持,使得团队成员可以共享和管理代码的变更。

常见的版本控制系统包括:

  1. Git:目前最流行的分布式版本控制系统,用于跟踪文件的变化并协作开发项目。
  2. Subversion(SVN):集中式版本控制系统,类似于 Git,但与 Git 不同的是它使用集中式的存储库来管理文件版本。
  3. Mercurial:另一个分布式版本控制系统,与 Git 类似,但使用起来更简单。
  4. Perforce:用于大型项目和团队的商业版本控制系统,具有高性能和可定制性。
  5. Team Foundation Version Control(TFVC):Microsoft 开发的版本控制系统,主要用于 Visual Studio Team Services(VSTS)和 Team Foundation Server(TFS)。

它们在实现版本控制的基本功能上有所不同,但都能满足开发者对版本管理的需求。版本控制系统在软件开发过程中扮演着重要的角色,有助于提高团队的协作效率、保证代码的质量和可维护性。

四、什么是 Git

Git 是一个分布式版本控制系统,它是由 Linux 之父 Linus Torvalds 开发的,用于管理软件开发过程中的源代码版本。它的主要功能包括跟踪文件的变化、记录文件的历史版本、协作开发、代码审查等。Git 的设计目标是速度、简单性、非线性开发(允许同时进行多个分支的开发)和完全分布式。
Git 是一种非常强大、灵活且广泛应用的版本控制系统,对于任何需要管理代码变更的项目都是非常有用的工具。Git 允许开发者在一个项目中进行版本控制。它可以帮助开发团队在多人协作开发时更好地管理代码,并且可以在不同的开发环境之间轻松地共享和同步代码。Git 也是开源的,因此任何人都可以免费使用它,并且它拥有庞大的社区支持,有许多优秀的工具和扩展可以与之配合使用。

五、Git 工作流程

未命名文件.png

  1. 开发人员第一次使用 git clone 命令从远程库克隆项目到本地库。如果本地已经存在该项目则使用 git pull 命令更新本地的项目
  2. 开发人员在本机的工作区打开本地库中的项目进行开发
  3. 工作区的项目有变更之后,使用 git add 命令将工作区的变更放入暂存区
  4. 暂存区有新内容之后,使用 git commit 命令将暂存区内容提交到本地库
  5. 此时,本地项目的最新版本已经保存到了本地库,但是远程库还是旧版本
  6. 使用 git push 命令将本地库的最新变更提交到远程库

每一个开发人员都可以通过上述的流程拉取项目,开发项目,推送最新的代码,从而实现了团队开发项目。

六、Git 常用命令

  1. 初始化一个新的 Git 本地仓库

    git init
    
  2. 从远程仓库克隆一个仓库到本地

    git clone [url]
    
  3. 将文件添加到暂存区

    git add [file]
    
  4. 将所有修改过的文件添加到暂存区

    git add .
    
  5. 将暂存区的文件提交到本地仓库,并附上提交信息

    git commit -m "[message]"
    
  6. 显示工作目录的状态,显示已暂存和未暂存的改动

    git status
    
  7. 显示工作目录中当前文件和暂存区域的差异

    git diff
    
  8. 显示已暂存的内容与上次提交之间的差异

    git diff --cached
    
  9. 显示提交日志

    git log
    
  10. 列出本地分支

    git branch
    
  11. 创建一个新的分支

    git branch [branch_name]
    
  12. 切换到指定分支

    git checkout [branch_name]
    
  13. 将指定分支合并到当前分支

    git merge [branch_name]
    
  14. 拉取远程仓库的更新

    git pull
    
  15. 将本地提交推送到远程仓库

    git push
    
  16. 查看远程仓库信息

    git remote -v
    
  17. 添加一个新的远程仓库

    git remote add [name] [url]
    
  18. 移除一个远程仓库

    git remote remove [name]
    
  19. 从暂存区中移除指定文件,但保留在工作区中的修改

    git reset [file]
    
  20. 重置暂存区和工作目录,与最新提交保持一致

    git reset --hard
    
  21. 将当前的修改暂存起来,并将工作区恢复到上一次提交时的状态

    git stash
    
  22. 列出所有标签

    git tag
    
  23. 创建一个新的标签

    git tag [tag_name]
    
  24. 切换到指定标签

    git checkout [tag_name]
    
  25. 删除文件,并将这次删除放入暂存区

    git rm [file]
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1601391.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

采用4G、5G实现无线视频监控,流量过大费用高,如何降低网络流量?

目录 一、高清视频监控中使用的4G和5G介绍 (一)4G物联网卡: 1、数据传输与稳定性 2、应用与优势 (二)5G物联网卡: 1、数据传输与速率 2、应用场景 二、4G/5G流量池 三、视频监控的流量使用 …

rk3588 安卓调试

rknn装上了android系统,用type-c usb连接上电脑,设备管理器发现了rk3588,但是Android Studio没有发现设备 后来怀疑是驱动没有安装,我用的驱动下载地址: 瑞芯微Rockchip驱动安装助手(适用于RK3308 RK3399等) Mcuzone…

SSH协议的优缺点

SSH(Secure Shell)是一种用于在计算机网络上进行安全远程访问和执行命令的协议。提供加密通信通道,防止敏感信息在传输过程中被窃听或篡改。SSH还支持文件传输和端口转发等功能,使其成为广泛使用的安全远程管理工具。 1. 安全远程…

Centos7下载配置jdk18与maven3.9.6【图文教程】

个人记录 进入目录 cd /usr/local/JDK下载与配置 OpenJDK官网 下载安装 wget https://download.java.net/openjdk/jdk18/ri/openjdk-1836_linux-x64_bin.tar.gz解压 tar -zxvf openjdk-1836_linux-x64_bin.tar.gz ls ls jdk-18/编辑配置文件 vim /etc/profile配置环境变…

YOLOv8 目标检测项目实操

一 yolov8 背景介绍 YOLOv8是一种尖端的、最先进的(SOTA)模型,建立在以前 YOLO 版本的成功基础上,并引入了新的特性和改进,以进一步提高性能和灵活性。YOLOv8被设计为快速、准确、易于使用,这使它成为一个很好的选择,…

如何在企业微信中更换新的企业主体

企业微信变更主体有什么作用? 做过企业运营的小伙伴都知道,很多时候经常会遇到现有的企业需要注销,切换成新的企业进行经营的情况,但是原来企业申请的企业微信上面却积累了很多客户,肯定不能直接丢弃,所以这…

IDM2024破解版 IDM软件破解注册序列号 idm教程 idm序列激活永久授权 Internet Download Manager网络下载加速神器

你是不是感觉下载东西资源的时候,下载的非常慢,即便是五十兆的光纤依旧慢、是不是想下载网页上的视频但不知如何进行下载……这些问题是否一直在困扰着您,今日小编特意我大家带来了这款IDM 2024破解版。 众所周知,IDM是一款功能强…

函数模板(C++)

目录 一、介绍 二、注意事项 三、排序函数 1、交换函数模板 2、排序算法 3、打印函数 4、测试函数 四、普通函数与函数模板 区别 调用规则 五、模板局限性 六、类模板 类模板与函数模板区别 1、类模板没有自动类型推导使用方式 2、类模板在模板参数列表中可以有默认…

对桥接模式的理解

目录 一、背景二、桥接模式的demo1、类型A(形状类型)2、类型B(颜色类型)3、需求:类型A要使用类型B(如:红色的方形)4、Spring的方式 一、背景 在《对装饰器模式的理解》中&#xff0…

msyql中SQL 错误 [1118] [42000]: Row size too large (> 8126)

场景: CREATE TABLE test-qd.eqtree (INSERT INTO test.eqtree (idocid VARCHAR(50) NULL,sfcode VARCHAR(50) NULL,sfname VARCHAR(50) NULL,sfengname VARCHAR(50) NULL,…… ) ENGINEInnoDB DEFAULT CHARSETutf8 COLLATEutf8_general_ci;或 alter table eqtre…

Linux硬件管理

文章目录 Linux硬件管理1.查看磁盘空间 df -h2.查看文件的磁盘占用空间 du -ah3.查看系统内存占用情况 htop Linux硬件管理 1.查看磁盘空间 df -h 语法 df [选项][参数]选项 -a或–all&#xff1a;包含全部的文件系统&#xff1b; –block-size<区块大小>&#xff1a;…

React + Ts + Vite + Antd 项目搭建

1、创建项目 npm create vite 项目名称 选择 react 选择 typescript 关闭严格模式 建议关闭严格模式&#xff0c;因为不能自动检测副作用&#xff0c;有意双重调用。将严格模式注释即可。 2、配置sass npm install sass 更换所有后缀css为sass vite.config.ts中注册全局样式 /…

【中级软件设计师】上午题08-UML(下):序列图、通信图、状态图、活动图、构件图、部署图

上午题08-UML 1 序列图2 通信图3 状态图3.1 状态和活动3.2 转换和事件 4 活动图5 构件图&#xff08;组件图&#xff09;6 部署图 UML图总和 静态建模&#xff1a;类图、对象图、用例图 动态建模&#xff1a;序列图&#xff08;顺序图&#xff0c;时序图&#xff09;、通信图&a…

vue:如何通过两个点的经纬度进行距离的计算(很简单)

首先假设从api获取到了自己的纬经度和别人的纬经度 首先有一个概念需要说一下 地球半径 由于地球不是一个完美的球体&#xff0c;所以并不能用一个特别准确的值来表示地球的实际半径&#xff0c;不过由于地球的形状很接近球体&#xff0c;用[6357km] 到 [6378km]的范围值可以…

Python-VBA函数之旅-eval函数

目录 一、eval函数的常见应用场景&#xff1a; 二、eval函数安全使用注意事项&#xff1a; 三、eval函数与exec函数对比分析&#xff1a; 1、eval函数&#xff1a; 1-1、Python&#xff1a; 1-2、VBA&#xff1a; 2、相关文章&#xff1a; 个人主页&#xff1a;ht…

计算机考研408真的很难吗?

408难&#xff01;科软有人四战没上岸&#xff0c;就是408拖的后腿&#xff01; 这位同学数二144英二81&#xff0c;真的太可惜了&#xff01; 是因为择校的问题吗&#xff1f; 看了他的备战经历后&#xff0c;我们发现&#xff0c;还真不是择校问题&#xff01; 是典型的备…

13个Java基础面试题

Hi&#xff0c;大家好&#xff0c;我是王二蛋。 金三银四求职季&#xff0c;特地为大家整理出13个 Java 基础面试题&#xff0c;希望能为正在准备或即将参与面试的小伙伴们提供些许帮助。 后续还会整理关于线程、IO、JUC等Java相关面试题&#xff0c;敬请各位持续关注。 这1…

9. 性能

文章目录 第9章 性能9.1 性能通用场景9.2 性能策略控制资源需求管理资源 9.3 基于策略的性能的问卷9.4 性能模式服务网格负载均衡限流Map-Reduce 9.5 扩展阅读9.6 问题讨论 第9章 性能 身行一例&#xff0c;胜似千言。 —Mae West 这是跟时间有关的。 性能&#xff0c;即&…

JavaWeb--前端--01HTML和CSS

文章目录 1 前端开发介绍2 开发工具3 文档查阅4 CSS选择器VSCode的插件 点击进入:W3School的HTML文档 点击进入:W3School的CSS文档 内容就在这两个网站里面 1 前端开发介绍 Web标准也称为网页标准&#xff0c;由一系列的标准组成&#xff0c;大部分由W3C&#xff08; World W…

ArcGIS加载的各类地图怎么去除服务署名水印

昨天介绍的&#xff1a; 一套图源搞定&#xff01;清新规划底图、影像图、境界、海洋、地形阴影图、导航图-CSDN博客文章浏览阅读373次&#xff0c;点赞7次&#xff0c;收藏11次。一体化集成在一起的各类型图源&#xff0c;比如包括影像、清新的出图底图、地形、地图阴影、道路…