git版本控制系统

本文对比了Git和SVN两种版本控制系统的优缺点,Git为分布式,适用于网络不稳定环境,强调个人独立操作;SVN为集中式,操作简单,但数据安全性较低。文章深入解析了Git的工作流程,包括工作区、版本库、暂存区的概念,以及如何进行部署、提交、回退等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

git与svn

svn属于集中化版本控制系统,c/s架构

  • 优点
    适用简单,符合常规思维
    同步代码简单,只需一步操作 
  • 缺点
    数据丢失风险大

git属于分布式版本控制系统

  • 优点
    在网络断开的时候操作不受影响,可以频繁的进行提交更新,等到有网络的时候再上传到远程的镜像仓库就可以了
    文档详细,使用提示到位,使用方便
  • 缺点
    每个人都拥有所有代码,不利于核心代码保密

git相关概念

  • 工作区
    存放git版本仓库的目录就是工作区,随意创建。
  • 版本库
    工作区有一个隐藏目录.git,是Git的版本库。
  • 暂存区
    Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针HEAD。

你的本地仓库主要由三部分组成。
第一个是你的 工作目录,它持有实际文件;
第二个是 缓存区(Index),它像个缓存区域,临时保存你的改动;
第三个HEAD,指向你最近一次提交后的结果。

当使用add命令提交时,先提交到缓存区,然后再使用commit命令提交到本地库。HEAD指向最近一次提交结果,可改变HEAD指向实现版本控制。

git部署

yum install git -y
git config –global user.email “邮箱”   
git config –global user.name “用户名”  配置你的名字和Email地址

git版本库

  1. 创建空目录,当工作区

    mkdir gittest  名字随便

  2. 通过git init命令把这个目录变成Git可以管理的仓库

     cd gittest/
     git init     创建本地库,本地可以push,不可以远程push,可以远程clone
     git init --bare   创建裸库,适合做远程中心仓库,本地不可以push,可以远程push
  3. 在gittest目录下创建一个测试文件readme.txt

    [root@vm20 gittest]# cat readme.txt
    Git is a version control system.
    Git is free software.
  4. 把文件添加到暂存区

    git add readme.txt

  5. 提交文件到仓库分支

    git commit -m “test”   -m 本次提交的说明 必须要写,方便以后回退

  6. 查看git状态

    git status

  7. 查看日志

    git log
    [root@git gittest]# git log
    commit 7416b2dc7ae9e266846c8fe00819531d1ee448e0   id号
    Author: cheng cheng@aaa.com              作者  
    Date: Thu Sep 13 13:17:07 2018 +0600           时间
     
    这是我的第一个版本                  描述内容

撤销修改和回退

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改
   用命令git checkout – file。

场景2:当你改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改
  分两步,第一步用命令git reset HEAD file,
      就回到了场景1,第二步按场景1操作。

场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,使用版本回退,不过前提是没有推送到远程库。

  1. 查看现在的版本
    git log
  2. 回到想要的版本
      回到上一个版本 git reset - -hard HEAD^
      回到指定的版本 git reset - -hard 6fe5b9a2 (版本id号)
      如果回到此次之后的版本,git log查不到id号,使用git relog

删除文件

从工作区删除test.txt,并且从版本库一起删除

rm -rf test.txt
git rm test.txt
git commit -m “删除文件test.txt”

如果工作去删除test.txt后想找回

git checkout - - test.txt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值