git的使用


Node.js

什么是Nodejs

  • Node.js 是一个基于 Chrome 谷歌V8 引擎的 JavaScript 运行环境

    优缺点

  • 优点
    • 异步非阻塞的 I/O (I/O 线程池)
    • 特别适用于 I/O 密集型应用
    • 事件循环机制
    • 单线程
    • 可以跨平台
  • 缺点
    • 回调函数嵌套太多、太深 产生回调地狱问题
    • 单线程 处理不好 cpu 密集型任务

Nodejs的安装

  • 标准化安装(傻瓜式)

    检测Nodejs 是否安装成功

  • node -v 返回当前nodejs版本号 命令
  • npm -v 返回当前npm的版本号 命令
  • npm install xxxx 安装一个包的命令

其他

cls 命令清空 控制台

Nodejs与npm的关系

  • 我们在开发时,经常会用到很多别人已经写好的代码或第三方库,我们一般会这样操作:搜索,下载,解压,引入。
    如果每次都这么做势必很麻烦,于是Node.js的设计者打造了一个包管理器:npm,一些第三方库的作者把代码放在npm上。
    当我们想要使用时,直接通过npm命令去安装即可,不用去理会应该下载什么?放在哪里?一切都处理好。
    而且如果我们要用的模块A,而模块A又依赖模块B,模块B又依赖模块C和D,那么npm会根据依赖关系,把所有依赖的包都下载下来并且管理起来。
  • 1.npm全称:Node package manager(Node包管理器),安装了Node就自动安装好了npm。
    2.包(库、项目):电脑上的一个普通文件夹,包含了package.json,就变成了一个符合npm规范的包。
    3.使用命令:npm init把一个普通的文件夹变成一个包,即自动生成package.json
  • 为了让你的npm下载东西更迅速,请务必执行以下命令 npm config set registry http://registry.npm.taobao.org/

dos 命令

  • cd xxx 进入xxx文件或文件夹
  • cd.. 返回上一级目录
  • ls 列出当前文件夹中所有文件
  • clear 清屏
  • mkdir xxx 创建一个空文件夹
  • cat xxx 查看文件内容
  • pwd 显示当前目录的路径
  • vi 文件名.后缀 创建一个文件
    • 自动进入了文件 输入i 进行编辑模式
    • esc+ : + wq +enter 保存并退出文本编辑
    • esc+ : + q! +enter 不保存并退出文本编辑
  • git 命令

  • 配置和查看git的name 和email
    • git config –global user.name “Your Name” 配置姓名
    • git config –global user.email “email@example.com“ 配置邮箱
    • git config user.name 用于查看配置的姓名
    • git config user.email 用于查看配置的邮箱
  • git init 初始化版本库
  • git remote add origin https://github.com/xxxxx/a.git 关联一个远程库
  • git add 添加指定文件到暂存区
  • git commit -m “提交描述” 提交暂存区所有文件到版本区
  • git push -u origin master 将内容推送到远程仓库
    • git push -u(第一次尽量加上-u,以后不用)origin master:把当前master分支推送到远程库
  • git status:查看仓库状态
    • 红色表示在工作区
    • 绿色表示在暂存区
    • 没有任何显示代表所有文件位于版本区
  • git log:查看历史记录
  • git reflog:查看历史记录的版本号id
  • git reset –hard HEAD^:往上回退一个版本
  • git reset –hard Obfafd  回退到指定Obfafd的commit id版本
  • git reset HEAD 用版本库中的文件去替换暂存区的全部文件
  • git checkout – xx:把xx文件在工作区的修改全部撤销
  • git rm –cached x.txt 从暂存区删除文件
  • git rm xx:删除xx文件
  • git rm -r xxxx 删除文件夹
  • git clone https://github.com/xxxxx 从远程库中克隆
  • git branch xxx:创建分支xxx
  • git checkout -b dev:创建dev分支 并切换到dev分支上
  • git branch:查看当前所有的分支
  • git checkout master:切换回master分支
  • git merge dev:在当前分支合并dev分支
  • git branch -d dev:删除dev分支
  • git diff branch1 branch2 显示出两个分支之间所有有差异的文件的详细差异
  • git diff branch1 branch2 –stat 显示出两个分支之间所有有差异的文件列表
  • git diff branch1 branch2 xxx 显示指定文件的详细差异
  • git remote:查看远程库信息
  • git remote -v查看远程库的详细信息
  • git pull origin master 将远程库的更新拉取到本地并自动合并
  • git push origin master:git会把master分支推送到远程库对应的分支上

    git 配合 gitee创建远程仓库 流程

  • git init 初始化版本库
  • git remote add origin https://github.com/xxxxx/a.git 关联一个远程库
  • git add 添加指定文件到暂存区
  • git commit -m “提交描述” 提交暂存区所有文件到版本区
  • git push -u origin master 将内容推送到远程仓库

    使用SSH方式与github交互

  • 创建一对新的SSH秘钥(keys)
  • 输入命令:ssh-keygen -t rsa -C “你Github注册的邮箱” 建议一路回车 用默认的ssh存放地址 密码不设置 直接回车
  • 根据ssh生成的地址找到该文件进行内容复制在粘贴到 github中
    • 运行命令将公钥的内容复制到系统粘贴板(clipboard)中 win+v键查看是否复制成功 在将复制内容粘贴到github
  • 命令: clip < ~/.ssh/id_rsa.pub
  • 检查git是否和github关联上 命令:ssh -T git@github.com

    工作区+版本区+暂存区

  • 工作区(working Directory):简单的理解——你在电脑里能看到的目录
  • 暂存区(stage):介于工作区和版本区中间,工作区到版本区的“必经之路”
  • 版本库(Repository):工作区有一个隐藏目录.git,准确的来说这个不算工作区,而是Git的版本库。

    案例

    场景:本地仓库与远程仓库同步 克隆远程仓库 删除一个文件 又上传一个文件 (此时实现远程和本地同步)

  • 问题产生原由:克隆远程仓库 删除一个文件 又准备上传一个文件 此时新创建的文件可以上传成功 但是 此时 本地库和远程仓库 不一致
  • 解决方法
    • git fetch –all 是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中
    • git reset –hard origin/master
      • git reset 版本号,就是回退到该版本号上。
      • git reset HEAD就是回退到当前版本。git reset HEAD^回退到上一版本
    • git pull 将远程库的更新拉取到本地并自动合并

场景 两人同时提交代码时 后一个无法提交 与前一个提交产生冲突

  • 问题产生原由:两个人本地库一模一样 a在第一行抒写一串代码b也如此 a先上传了但时此时b也要上传 b无法上传
  • 解决方法:
    • git pull 将远程库的更新拉取到本地并自动合并
    • 合并后 先处理非代码的提示信息 利用插件插件会显示 两者之间冲突的代码
    • 考虑优先级 谁先上传将谁的提前放 手动处理
    • 在重新提交

文章作者: overwhat
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 overwhat !
评论