Git 版本控制系统

一. Git概述

​ Git是一个免费的,开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目

​ Git 易于学习,占地面积小,性能极快,他有廉价的本地库,方便的暂存区和多个工作流分支等特性

  1. 何为版本控制

    版本控制是一种记录文件内容变化,以便将来查询特定版本修订情况的系统

    版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够看到历史版本,方便版本切换

  2. 为什么需要版本控制

    个人开发过渡到团队协作

  3. 版本控制工具
    • 集中式版本控制工具

      CVS,SVN,VSS

      集中式版本控制系统诸如CVS,SVN等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人门通过客户端连接到这台服务器,取出最新的文件或者提交更新。多年以来,这以称为版本控制的标准做法

      这种做法带来了许多好处,每个人都可以在一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松的掌握每个开发者的权限,并且管理着一个集中化的版本控制系统,要远比在各个客户端上维护本地数据库来的轻松容易

      事分两面,有好有坏。这么做显而易见的缺点就是中央服务器单点故障,如果服务器宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作

    • 分布式版本工具

      Git,Meruial,Bazaar,Darc

      像Git这种分布式版本控制工具,客户端提取的不是最新版本的文件快照,而是把代码仓库完整的镜像下来(本地库)。这样任何一处协同用的文件发生故障,事后都可以用其他客户端的本地仓库进行恢复。因为每个客户的每一次文件提取操作,实际上都是一次对整个文件的完整备份

      分布式版本控制系统出现之后,解决了集中式版本控制系统的缺陷

      1. 服务器断网的情况下也可以进行开发(因为版本控制是在本地进行的)
      2. 每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)
  4. git工作机制和代码托管中心

    本地工作目录—git add----->暂存区—git commit----->版本库(分支 默认主分支master)----push–>远程版本库

    ​ ^---------------pull--------------------|

    git和代码托管中心

    代码托管中心是基于网络服务器的远程代码仓库,一般称为远程库

    局域网

    Gitlab(公司内部)

    互联网

    GitHub(外网)

    Gitee(国内网站)

二.Git常用命令

命名名称作用
git config --global user.name “username”设置用户名
git config --global user.email “useremail”设置邮箱
git init初始化本地库
git status查看本地库状态
git add 文件名添加到暂存区
git commit -m “说明” 文件名提交到本地库
git reflog查看历史记录
git reset --hard ^HEAD版本穿梭

三.版本穿梭

  • 查看日志

    查看精简版日志 git reflog

    查看详细日志 git lof

  • 版本穿梭

    穿梭到前一版本 git rest --hard ^HEAD

    穿梭到任意版本 git rest --hard 版本号

四.分支

​ 提交—>部署—>服务器(测试)—>部署(运维)—>服务器(线上)—>用户

  • 什么是分支

    在版本控制系统中,同时推进多个任务,为每个任务,我们可以创建每个任务的单独分支。使用分支可以把自己的工作从开发主线上分离出来,开发自己分支的时候,不会影响主线分支的运行。对于初学者而言,分支可以简单的理解为副本,一个分支就是一个单独的副本。(分支的底层就是指针的引用)

  • 分支的好处

    同时并行推进多个功能的开发,提高开发效率

    各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可

  • 分支的操作

    命令名称作用
    git branch 分支名创建分支
    git branch -v查看分支
    git checkout 分支名切换分支
    git merge 分支名把指定分支合并到当前分支上
    git reset --merge退回合并

五.GitHub操作

GitHub 网址: https://github.com/

Ps:全球最大的同性交友网站

远程仓库操作

命名名称作用
git remote -v查看当前所有远程库地址别名
git remode add 别名 远程地址远程连接并起别名
git push (-u) 别名 分支推送本地分支上的内容到远程库(首次推送需要 -u 参数)
git clone 远程地址将远程库的内容克隆到本地
git pull 别名 远程分支名将远程仓库对对于分支最新的内容拉下来之后与当前本地分支进行合并(更新)
  • 免密钥登录 ssh

    生成密钥

    ssh-keygen -t rsa -C 2414680855@qq.com (本地生成文件 /Users/macos/.ssh/id_rsa 只需要生成一次)

    本地项目与远程相关联 git remote add origin git@gitee.com:zhouhongjie123/gitlearn.git

  • 第一次发布项目

    git add

    git commit -m “注释内容”

    合并代码 : git pull --rebase origin master

    推送到远程: git push -u origin master

  • 第一次下载项目(远程到本地)

    git clone git@gitee.com:zhouhongjie123/gitlearn.git

  • 提交

    git add .

    git commit -m “”

    git push origin master

  • 更新(远程到本地)

    git pull

六.团队协作

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值