一、课堂开篇

1.1 自我介绍

1.2 第三阶段课程简介

二、Git版本控制工具

为什么要使用版本控制工具?【了解】

在公司中开发项目时通常是多人协同开发,经常会出现代码文件相互被覆盖、代码不同步、同一个文件在电脑中存在多份等情况,如果使用版本控制工具则上面这些问题都会被解决。

2.1 版本的概念

(1)初指一种书籍经过多次传抄而形成的各种不同本子。随着时代的发展,版本也开始应用于软件上。

(2)软件版本编号制定是指为软件设置版本号码的方式。通常,版本号码会以数字订定。如:CTS3.3.5、QQ 2021 Beta

各版本的时间轴演变,每一次版本的改变,都会有功能的改变。

2.2管理版本

2.2.1.传统管理方式

问题:传统管理方式造成了本地电脑上有很多相同的文件,不容易维护,造成了非常混乱的局面。

2.2.2 版本控制方式

介绍:

好处:使用版本控制以后,只需在本地保存一份,各个版本由版本控制软件来进行管理,常见的版本控制软件有git和svn。

2.3 git介绍

2.3.1 定义:

Git 是一个开源的分布式版本控制系统,是目前世界上最先进、最流行的版本控制系统。可以高效地管理项目。

2.3.2 特点:

项目越大越复杂,协同开发者越多,越能体现出Git 的高性能和高可用性!并且git有3个区域

2.3.3 git的三个区域【重点】

  • 工作区:写代码的区域

  • 暂存区:如果某一个功能模块开发完成后可以将代码提交到暂存区中

  • 仓库区:当我们把整个功能模块开发完成后将暂存区中的代码提交到本地仓库中,这样可以产生一个版本号

2.4 安装步骤

2.4.1 下载

Git - Downloads

2.4.2 安装

一路回车

2.4.3 配置用户信息

描述:安装完Git 之后,需要设置自己的用户名和邮件地址。进行管理的时候,Git 需要使用这些基本信息,来记录是谁对项目进行了操作

配置命令:

git config --global user.name xxx
git config --global user.email xxx
git config --list      // 查看git配置信息

注意:同一台电脑上面的git config命令只需要执行一次,执行完成的配置信息保存在:C:\Users\当前用户名.gitconfig文件中。

2.5 Git操作步骤

(1)使用git初始化项目

(2) 编写代码

(3) 把工作区添加到暂存区

(4) 把暂存区添加到仓库区

2.6 Git命令

git init:

使用git初始化项目,注意:同一个项目只需要初始化一次,初始化成功后会在当前项目目录中自动创建一个.git的隐藏目录,这个隐藏目录中的内容不需要我们手动修改

git add .或文件名及目录名称

将工作区中的代码提交到暂存区

git commit -m 备注信息

将暂存区中的代码提交到本地仓库

git status

查看git 状态

git log

查看git完整的日志[版本]信息

git log --oneline

查看git简短的日志[版本]信息

git reset --hard 版本号

git版本回退

git reflog

查看所有git日志[版本]信息,注意:当我们使用了git reset --hard进行版本切换后要使用git reflog来查看所有git日志信息。

2.7 文件忽略

2.7.1 介绍:

对于无需使用git进行管理的文件或文件夹使用此文件进行配置

2.7.2 使用步骤:

第一步:在项目根目录中新建.gitignore文件;

第二步:在.gitignore文件中配置要忽略的文件或目录的规则;

2.7.3 常用配置规则:

(1) /git-demo1/ 过滤整个文件夹

(2) *.txt 过滤所有.txt文件

(3) /git-demo1/a.html 过滤某个具体文件

2.8 分支

2.8.1 介绍:

git版本控制系统支持分支操作。可以从开发主线上分离开来,然后在不影响主线的同时继续工作。

2.8.2 什么是主分支?

在初始化本地 Git 仓库的时候,Git 默认已经帮我们创建了一个名字叫做 master 的分支。我们把这个master 分支叫做主分支,主分支上的代码是功能好用、但不一定完整的代码。

2.8.3 主分支的问题:

在进行多人协作开发的时候,为了防止互相干扰,提高协同开发的体验,建议每个开发者都基于分支进行项目功能的开发

2.8.4 分支解决的问题:

用来保存和记录整个项目已完成的功能代码。但是不允许程序员直接在master 分支上修改代码,这样做的风险太高,容易导致整个项目崩溃

2.8.5 分支相关命令

git branch

查看git分支信息

git branch 分支名

创建分支

git checkout 分支名

切换分支

git merge 分支名

合并分支

注意:在合并分支时容易发生文件冲突。

什么是文件冲突?【重点】

当多个开发人员修改了同一个文件中的同一段代码时在合并到主分支时就发生文件冲突,文件冲突如下:

怎样解决文件冲突?【重点】

开发者自行手动解决文件冲突,也就是说要让开发者自己手动查看代码,然后手动处理发生冲突的代码,解决完文件冲突后再使用git add .及git commit -m 这些命令。

2.8.6 解决冲突

介绍:如果在两个不同的分支中,对同一个文件进行了不同的修改,Git 就没法合并它们。 我们需要打开这些包含冲突的文件然后手动解决冲突。

2.9 远程仓库

2.9.1 介绍:

Git 命令都是在本地执行,如果想通过 Git 分享你的代码或者与其他开发人员合作。 就需要将文件放到一台其他开发人员能够连接的服务器上。这就是远程仓库的作用。

2.9.2 远程仓库分类:

(1)github:github是一个基于git的代码托管平台,在国外,速度比较慢,在大陆的使用很受影响

(2)gitee:gitee是一个基于git的代码托管平台,国内使用频率较多

(3)公司自己部署,了解即可,强调不是前端人员部署的,使用步骤和命令都一样

2.9.3 操作流程

注册

创建远程仓库

本地文件推送到远程仓库

克隆和同步远程仓库

2.9.4 相关命令

remote add 本地别名 远程仓库地址

给远程仓库地址起个别名

git remote -v

查看本地别名信息

git push [-u] 远程仓库地址/别名 本地分支名称

将本地仓库代码推送到远程仓库

注意:如果使用了git push -u参数后则下次可以直接使用git push命令来将本地仓库中的代码推送到远程仓库,而不需要带远程仓库地址及本地分支名称。

注意:同一个远程仓库中只能放一个项目的代码,而不能将不同项目的代码推送到同一个远程仓库中。

git clone 远程仓库地址

克隆远程仓库地址中的代码到本地电脑中

注意:同一个远程仓库中需要克隆一次。

git pull

拉取远程仓库中的代码到本地电脑中

注意:拉取在同一个项目中可以多次使用

2.9.5 SSH访问

简介:传统方式访问远程仓库的问题:传统方式本地和远程传输,需重复输入gitee的账号和密码,较为繁琐。

SSH好处:免登录身份认证、数据加密传输。而SSH实现本地仓库和gitee之间免登录的加密数据传输。更重要的原因是团队协同开发更加方便。

SSH组成: (1)id_rsa 私钥文件,存放于开发者的电脑中 (2)id_rsa.pub 公钥文件 。

生成密钥步骤:1、打开Git Bash 2、执行相关命令 3、连续敲击3 次回车( 最后一次要输入yes )

2.9.5.1相关命令

ssh-keygen

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

ssh

ssh -T git@gitee.com

2.9.5.2配置ssh

2.9.5.3 使用ssh提交本地文件

2.9.6 Git与SVN区别

SVN:SVN是一个开放源代码的集中式版本控制系统,用于多个人共同开发同一个项目,实现共享资源。集中式版本控制系统:版本库是集中存放在中央服务器,开发者需要先从中央服务器获取最新的版本文件,然后开始干活,最后再把自己修改的文件推送到中央服务器。

Git:Git 是一个开源的分布式版本控制系统,是目前世界上最先进、最流行的版本控制系统。可以快速高效地处理从很小到非常大的项目版本管理。分布式版本控制系统:没有“中央服务器”,每个人的电脑上都是一个完整的版本库,联网开发不是必须的。但两两开发者之间肯定不会以qq或U盘形式传送,也有一台充当“中央服务器”的电脑(gitee和github)。此服务器的作用仅是用来方便“交换”各开发之间的修改。

Node.js git命令相关推荐

  1. Node.js Git Server搭建及Git常用操作笔记

    Node.js Git Server搭建及Git常用操作笔记 安装Git工具即可在本地进行Git仓库的管理,如果要实现远程仓库则需要搭建Git Server.通过Node.js搭建Git Server ...

  2. 使用node.js构建命令行工具

    工具说明 inquirer.js:一个封装了常用命令行交互的node.js模块,通过该模块可以很方便地构建一个新的命令行应用. shell.js:跨平台的unix shell命令模块. Node版本: ...

  3. 使用Node.js创建命令行工具

    在我的职业生涯中我已经写了数百种Bash脚本,但在Bash方面仍然有很多不足.每次我都要为一些简单的逻辑结构去查阅语法.如果我想使用curl或sed做些特技,我还不得不去查找操作说明.我在我的正则表达 ...

  4. 【译】使用Node.js创建命令行脚本工具

    通过本文将一步步带领你利用Node.js来创建命令行脚本工具.在我的职业生涯中已经写过了上百个 `Bash` 脚本,但我的 `Bash` 依然写得很糟糕,每一次我都不得不去查一些简单逻辑结构的语法.如 ...

  5. 使用Node.js创建命令行脚本工具

    在我的职业生涯中已经写过了上百个 Bash 脚本,但我的 Bash 依然写得很糟糕,每一次我都不得不去查一些简单逻辑结构的语法.如果我想通过 curl 或者 sed 来做一些事情,我也必须去查找 ma ...

  6. 全网最详细中英文ChatGPT-GPT-4示例文档-从0到1快速入门AI智能问答应用场景——官网推荐的48种最佳应用场景(附python/node.js/curl命令源代码,小白也能学)

    从0到1快速入门AI智能问答应用场景 Introduce 简介 setting 设置 Prompt 提示 Sample response 回复样本 API request 接口请求 python接口请 ...

  7. 全网最详细中英文ChatGPT-GPT-4示例文档-智能AI写作从0到1快速入门——官网推荐的48种最佳应用场景(附python/node.js/curl命令源代码,小白也能学)

    从0到1快速入门智能AI写作应用场景 Introduce 简介 setting 设置 Prompt 提示 Sample response 回复样本 API request 接口请求 python接口请 ...

  8. node.js运用命令npm install 卡住不动,并报错(个人遇到的坑)

    一.  在启动若依微服务的前端的时候,运用命令npm install下载项目依赖时卡住,并且之后报错,如图 原因:node.js没有走环境代理,需要单独配置代理,个人用的是公司的内网,如果npm不配公 ...

  9. js node.js 编写命令工具demo

    1 创建文件夹cli-demo 2 执行npm init  3 创建cli.js 文件 内容如下: //js文件变成可执行文件 #!/usr/bin/env node console.log(&quo ...

最新文章

  1. ESI计算机排名2021年01月,喜忧参半!2021年5月ESI世界大学排行榜,21个学科排名数据分析!...
  2. Php数组面包屑导航,PHP 导航提示(面包屑型轨迹)
  3. 【任务脚本】0619京东叠蛋糕开奖好评,简单统计等级和红包关系,坐等淘宝开奖,更新汇总战绩...
  4. mysql模糊查询后分页_jsp模糊查询后的数据进行分页,但点击下一页后就查询全部的了...
  5. 5 Jedis 操作
  6. StreamTokenizer输入中的用法
  7. clover 主题_Clover主题更换
  8. 四、Web服务器——Session Cookie JSP入门 学习笔记
  9. linux内核五大部分,Linux内核的五大模块
  10. 暴风影音官网、App 挂了;工信部总结“携号转网”试运行情况;Zorin OS 15 Lite 发布 | 极客头条...
  11. Python验证码识别:利用pytesser识别简单图形验证码
  12. mysql 慢查询及深入调优
  13. 阿里巴巴《rocketmq开发指南》_主流消息中间件优劣:ActiveMQ,RabbitMQ,Kafka,RocketMQ...
  14. 计算机光驱故障分析,光驱故障示例解决
  15. AIDA64内存与缓存测试过了算稳定吗_【AMD R52600X】装机实录、基本特性介绍及性能测试...
  16. 打败主力的神奇划线法
  17. td-agent(Fluentd)的使用
  18. Win10 + GTX1650显卡 安装 Cuda-10.1 + CuDNN-7.6 + Tensorflow-gpu-1.15.0 一步到位
  19. 读书笔记 | 4.2 通用信用评分:应用与发展
  20. 【Python教程】史上最全Python快速入门教程,满满都是干货

热门文章

  1. python拼音检查
  2. 多元微积分_stokes定理证明
  3. MATLAB信号处理——信号与系统的分析基础(2)
  4. 压力面试问题——当你和好友,同一天同一家公司面试同一个岗位,你更希望谁入选?3种回答方式解析|智测优聘总结
  5. 高等数学Mathematica实验题——2.2 - 17.根号2的连分式展开(Expansion of square 2)
  6. FPGA入门经历的阶段
  7. Springboot项目启动后自动在浏览器打开
  8. 日历农历vue包括24节气等内容
  9. 印象笔记:部分Mac用户因为故障而丢失数据
  10. C# SolidWorks 二次开发 API --- 2018版 中文翻译 之官方示例