JavaScript学习笔记(五十二)——git

git

  • 中文名称: 分布式版本管理系统

    1. 它是一个安装在你的电脑上的应用程序(软件)
    2. 它用来管理你的项目目录及文件
    3. 它的管理方式是使用命令来进行的
  • 官网

    • 网址: https: //git-scm.com/
    • 下载: https: //git-scm.com/downloads
  • 安装

    • 下一步下一步到底
    • 安装完毕之后 会有一个 git bash桌面图标 右键也会增加两个选项: git GUI here git bash here
    • 点击之后会出现一个色彩鲜明的命令面板 等价于 cmd命令面板
    • 我们可以在这里调用git的指令
  • git初始化

    git是用来管理我们的项目文件的。但是git不会自己找,需要我们说明。说明方式,就是告诉git 这是一个需要你来管理的目录, 简称git目录

    git天生只管理文件 不管理空文件夹

    对应的指令就是

    • git init 将一个目录初始化为git目录
      • 操作步骤: 1 打开你要管理的项目目录 2 右键 选择 git bash here 3 在该命令面板中输入 git init 并回车 会生成一个.git隐藏目录 有该目录 就表示git正在管理着这个目录
      • 打开命令面板的方式
        • 1 git bash here
        • 2 打开目录 按住shift键 右键 选择 在此处打开 powershell 窗口 然后调用 git init命令
        • 3 打开cmd 切换到该目录下 调用 git init命令
  • git的状态

    • git status 该指令用于查看当前的文件状态
      • 调用该命令时会显示当前的整个文件结构中哪些被管理哪些没有被管理
      • 如果显示红色 表示没有被管理 或者是有过修改
      • 如果显示的是绿色 表示在暂存区中
  • git的三个存储空间

    • 工作区
    • 暂存区
    • 历史区
  • git暂存区的操作

    • git add xxx 该指令用于将文件区的内容添加到暂存区

      • 添加单个文件 git add index.html
      • 添加一个目录 git add css/
      • 添加所有 git add --all 或者简化方式 git add .
    • git reset xxx 该指令用于将暂存区中的内容撤销

      • 撤销单个文件 git reset index.html
      • 撤销一个目录 git reset css/
      • 撤销所有 git reset --all 或者简化方式 git reset .
  • 历史区的操作

    • 补充:

      • git config --global user.email “输入用户邮箱”
      • git config --global user.name “输入用户名字”
    • git commit -m ‘描述’ 该指令用于将暂存区中的内容添加到历史区 生成一个版本

    • git log 显示日志信息 默认只显示当前面板中的操作

    • git reset --hard versionID 该指令用于版本之间的切换

  • 两个文件

    • .gitkeep
      • 没有别的作用,只是保持文件夹,该文件的存在会让git认为这是一个有内容的文件夹
    • .gitignore
      • 该文件的作用是让git忽略一些文件和文件夹
      • 里面的内容就是忽略的文件和文件夹的路径
      • 该文件请务必放在 .git 文件夹同级

github\gitlab

  • github

    它是一个网站。它只接受由git这个软件上传的内容。可以理解为"云盘" 但是这个云盘只接受git上传。

  • 网址

  • https: //github.com/

  • 上传

    • 定义

      • 将git软件中历史区的内容提交到远端
    • 远端

      • github 国外的
      • gitlab 国内的github
    • 具体步骤

      • 1 注册一个github账号

      • 2 创建一个github仓库

      • 3 建立本地git与远端github的信任关系

      • 4 调用git命令进行上传

        • 创建一个变量 保存远端地址

          • git remote add origin https: //github.com/lilanbo/1909.git
              origin是一个变量名 可以是任何的名字 但是推荐使用origin
          `https: //github.com/lilanbo/1909.git` 是git仓库的地址
          
          
        • git push -u origin master

          • origin就是刚刚上一步定义的origin变量 它只需要定义一次就可以
        • master github上的主分支名称(推荐与本地分支名称一致)

  • 下载

    • 第一种 找到你要的项目地址

      • 点击 cloneordownload 按钮
      • 会看到两个选项 一个是 download ZIP
      • 点击该按钮 会开始下载
      • 下载完毕 解压缩到指定目录即可
    • 第二种

      • 点击 cloneordownload 按钮
      • 会看到两个选项 一个是 download ZIP 另一个是一个地址 https: //github.com/lilanbo/1909.git
      • 复制该地址
      • 打开本地git bash 面板 切换到指定目录下
      • git clone https: //github.com/lilanbo/1909.git
      • 会下载该仓库中的内容
  • 分支

    分支指的是同一个项目 不同的需求 此时就需要分支
    当你自己开发一个项目的时候,需要实现一个功能 此时你可以在主分支上开发、提交、开发、提交、开发、再提交。。。直到最终版本
    当你与别人合作开发的时候。你负责一部分功能,他负责另一部分功能。此时谁都不允许在主分支上进行开发。
    你应当自己开辟一个分支进行开发
    他也应当自己开辟一个分支进行开发
    当你们都开发完毕之后,会最终合并到主分支。

  • 开辟新的分支

    • git branch 分支名称

    注: 新开辟的分支的模板就是你当前的分支

  • 切换分支

    • git checkout 分支名称
  • 查看分支

    • git branch

    出现的是分支列表 有一个是高亮显示 前面带* 表示当前所在分支

  • 创建并切换分支

  • git checkout -b 分支名称

  • 合并分支

  • git merge 分支名称

  • git分支开发规范

    • master分支 主分支 负责上线的代码 不允许任何人在这上面进行提交代码 只接受合并(只接受develop分支的合并)
    • develop分支 主开发分支 从master上开辟 负责测试 不允许任何人在这上面进行提交代码 只接受合并(只接受feature分支的合并)
    • feature分支 主功能分支 从develop上开辟 负责开发分支 开发时就在这个分支上进行开发
      • feature-login
      • feature-list
      • feature-detail
    • feature-xxx-fix分支 紧急bug修复分支 当上线项目出现紧急bug之后,直接从master分支上开辟 进行修复 修复完毕之后再合并回去。
      • feature-login-fix

  • 使用方法整理:
    • 新项目初始化:

      • $ git init
    • 将文件添加到仓库:

      • $ git add 文件名
      • $ git add .
    • 将文件提交到仓库:

      • $ git commit -m “描述信息”
    • 查看状态:

      • $ git status
    • 查看修改了什么:

      • $ git diff 文件名
    • 查看日志:

      • $ git log
      • 可以加上参数 --pretty=oneline ,这样看起来就比较整洁
    • 版本回退:

      • 当前版本用 HEAD 表示
      • 上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
      • 回退到上一个版本:
        • $ git reset --hard HEAD^
      • 回退到某一个版本号:
        • $ git reset --hard 版本号
    • 查看每次命令,方便查看版本号:

      • $ git reflog
    • 撤销修改:

      • $ git checkout – 文件名

        • 把该文件在工作区的所有修改全部撤销,有两种情况:

          • 一种是文件修改后,还没有放入暂存区,现在,撤销修改会回到和版本库一模一样的状态

          • 一种是文件放入了暂存区,然后又修改,现在,撤销修改会回到添加暂存区后的状态

          • 总之,就是让这个文件回到最近一次git commitgit add时的状态

          • git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令

          • $ git reset HEAD 文件名

          • 假如放到了暂存区,还没有commit之前,发现自己编辑文件的时候有问题,幸好还没有提交,此时, Git同样告诉我们,用命令git reset HEAD可以把暂存区的修改撤销掉(unstage),重新放回工作区 ,执行命令后,发现暂存区是干净的,重新放回了工作区

    • 删除文件:

      • $ rm 文件名

        • 一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用rm命令删了
      • 这个时候,Git知道你删除了文件,因此,工作区和版本库就不一致了,git status命令会立刻告诉你哪些文件被删除了

      • 现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit

      • 另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本

      • git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”

      • 注意:从来没有被添加到版本库就被删除的文件,是无法恢复的!

    • 将项目上传到github

      • $ git remote add 自定义变量名(例如origin) 仓库地址
    • 把本地仓库的内容推送到github上

      • $ git push -u 自定义的变量名 (例如origin) master
      • 把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程
      • 由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
    • 克隆一个本地库

      • $ git clone 仓库地址
    • 从github下载到本地

      • $ git clone 仓库地址

如果想要更详细的了解如何使用git,可以访问https://www.liaoxuefeng.com/wiki/896043488029600

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JS-Git是一款使用纯JavaScript实现Git客户端和服务器端的开源项目。其主要采用模块化设计,可以运行在任何可以运行JavaScript的平台上。 为什么要使用JavaScript重新实现GitJavaScript要比其它任何语言都意义深远,它可以运行在笔记本、平板电脑、手机、Chromebook等任何可以运行浏览器的设备上。而Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理,是一款非常棒的工具。 目标平台 该项目的目标是希望它能够在每一个平台上运行,包括: ChromeOS App Firefox OS App Windows RT WinJS App HTML5 Web App(在所有现代浏览器上,包括IE 10) PhoneGap App 桌面Chrome App 以及其它在JavaScript里支持网络访问、持久存储和二进制的应用 功能目标 项目开发者并不打算完全克隆Git的所有功能,其主要目标是保留90%有趣的功能: 通过HTTP、Git或SSH来克隆远程存储库到本地存储 离线制定和提交本地变化 离线管理tag和分支 备份到远程存储仓库 通过HTTP、Git或SSH服务Git仓库 尽量模块化,可以供任何软件使用 让儿童编程 该项目的另一个宗旨是构建一个可以让儿童编程的开发环境,目前,很多年轻人都在玩平板电脑或Chromebook,但并没有什么合理的方式教他们编程,因此,我想改变这种状况并且开发一些工具,让他们可以成为一名非常专业的程序员。 在Chrome App里运行JS-GIT 使用js-git-app测试代码。 把JS-Git作为Node.JS CLI工具使用 该示例使用的应用程序是js-git-node。 该CLI工具能更换Git命令行工具的一个子集。这对基于Node.js的平台非常实用,但它不易安装Git。 介绍内容来自 iteye 标签:JSGit
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值