luffy-06

一.上节回顾

1 版本管理工具
2 git init  #当前目录被管理起来
3 git log  # 查看版本管理日志
4 git status # 绿色,红色
5 git add 文件名 # 把文件提交到暂存区
6 git commit -m '注释'  # 把暂存区内容提交到版本库
7 git reset --hard 版本号 # 回退到某个版本
8 远程仓库(github,gitee(国内),gitlab(公司自己搭建),bitbucket)
9 git remote # 查看远程仓库
10 git remote add https://gitee.com/liuqingzheng/luffyapi.git

1 你是仓库创建者
	cd luffyapi
	git init 
	git add .
	git commit -m "first commit"
	git remote add origin https://gitee.com/liuqingzheng/aaa.git
	git push origin master
2 你是协同开发者(本地有代码)
	git clone https://gitee.com/liuqingzheng/luffyapi.git
	代码copy过来,新建iginore,处理忽略文件
	git add .
	git commit -m "注释"
	git remote add origin https://gitee.com/liuqingzheng/luffyapi.git
	git push origin master
3 你是协同开发,你本地没有代码
	git clone https://gitee.com/liuqingzheng/luffyapi.git
    开发
    git add .
    git commit -m '注释'
    git push origin master
	

二.今日内容

1.ssh链接和https链接

https连接:
在这里插入图片描述
删除凭据中的gitee,再往远程仓库中提交本地仓库的内容需要重新输入用户名密码
在这里插入图片描述

ssh连接:
①如何生成密钥
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点击确定,输入码云密码,验证成功,就会出现如下
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

0 链接远程仓库的用户名密码
1 通常公司里会使用ssh链接远程仓库
	-https://gitee.com/help/articles/4181
2 生成公钥私钥,把公钥配置到gitee上,以后就不需要输入用户名密码了,走的是ssh
 	ssh-keygen -t rsa -C "306334678@qq.com"
 	在家目录,生成一个.ssh文件夹
 	git remote remove origin
 	git remote add origin
 	git@gitee.com:liuqingzheng/luffyapi.git
 	git push origin master
3 非对称加密(公钥和私钥),支付宝支付
4 给我一个公钥,你生成一个公钥,给你领导,你领导把你的公钥配置在gitee(gitlab)
	它会给你一个项目地址:git@gitee.com:liuqingzheng/luffyapi.git
	git clone git@gitee.com:liuqingzheng/luffyapi.git
	写代码,提交
 

2.gitlab

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1 公司运维人员搭建的(开源的git远程仓库)
2 使用起来跟gitee没有一点区别

3.git远程分支合并

在这里插入图片描述

1 创建远程分支
	-直接在远程创建:同步到本地
		-提交到远端的dev分支
		-本地要切到dev,修改
		-git push origin dev
	-本地创建,上传到远程
2 在远端让dev和master合并(你的领导干)
	在线上点点点
3 变基 rebase
4 本地合并完,再提交到远程(你的领导干)
	切到master分支,git merge dev
	git push origin master

4.git冲突出现原因及解决

1 你跟你的同事,开发同一个分支,改了相同的代码
他先提交,你拉取,出现冲突<<<<<<< HEAD
	<<<<<<< HEAD
       你的代码
    =======
      你同事冲突的代码
    >>>>>>> origin/dev
    如果你们改的是一个函数,你需要跟同事商量,使用你的代码
2 分支合并出冲突
	-master分支写的是
		def add2():
            print('add2')
            print('天王盖地大虎')
	-dev分支写的是
		def add2():
            print('add2')
            print('天王盖地小虎')
	-线上分支合并,不能自动合并
	-线下合并完,解决完冲突,再提交
3 强制提交(慎重)
git push origin master -f

5.首页登录注册vue页面

1 登录,注册,是新开单独的页面
2 绝对定位
3 vue的子传父

Header.vue

<template>
  <div class="header">
        <div class="slogan">
            <p>老男孩IT教育 | 帮助有志向的年轻人通过努力学习获得体面的工作和生活</p>
        </div>
        <div class="nav">
            <ul class="left-part">
                <li class="logo">
                    <router-link to="/">
                        <img src="../assets/img/head-logo.svg" alt="">
                    </router-link>
                </li>
                <li class="ele">
                    <span @click="goPage('/free-course')" :class="{active: url_path === '/free-course'}">免费课</span>
                </li>
                <li class="ele">
                    <span @click="goPage('/actual-course')" :class="{active: url_path === '/actual-course'}">实战课</span>
                </li>
                <li class="ele">
                    <span @click="goPage('/light-course')" :class="{active: url_path === '/light-course'}">轻课</span>
                </li>
            </ul>

            <div class="right-part">
                <div>
                    <span @click="is_show=!is_show">登录</span>
                    <span class="line">|</span>
                    <span>注册</span>
                </div>
            </div>
            <Login v-show="is_show" @close="close_login"></Login>
        </div>
    </div>
</template>

<script>
import Login from './Login'
export default {
  name: 'Header',
  data () {
    return {
      // sessionStorage中有url_path就使用它,没有就是 /
      url_path: sessionStorage.url_path || '/',
      is_show: false
    }
  },
  methods: {
    goPage (UrlPath) {
      // 已经是当前路由就没有必要重新跳转
      if (this.url_path !== UrlPath) {
        // js控制路由跳转
        this.$router.push(UrlPath)
      }
      // 把当前路径加入到了sessionStorage
      sessionStorage.url_path = UrlPath
    },
    close_login () {
      this.is_show = false
    }
  },
  // created() {
  //     sessionStorage.url_path = this.$route.path;
  //     this.url_path = this.$route.path;
  // }
  components: {
    Login
  }
}
</script>

<style scoped>
 .header {
        background-color: white;
        box-shadow: 0 0 5px 0 #aaa;
    }

    .header:after {
        content: "";
        display: block;
        clear: both;
    }

    .slogan {
        background-color: #eee;
        height: 40px;
    }

    .slogan p {
        width: 1200px;
        margin: 0 auto;
        color: #aaa;
        font-size: 13px;
        line-height: 40px;
    }

    .nav {
        background-color: white;
        user-select: none;
        width: 1200px;
        margin: 0 auto;

    }

    .nav ul {
        padding: 15px 0;
        float: left;
    }

    .nav ul:after {
        clear: both;
        content: '';
        display: block;
    }

    .nav ul li {
        float: left;
    }

    .logo {
        margin-right: 20px;
    }

    .ele {
        margin: 0 20px;
    }

    .ele span {
        display: block;
        font: 15px/36px '微软雅黑';
        border-bottom: 2px solid transparent;
        cursor: pointer;
    }

    .ele span:hover {
        border-bottom-color: orange;
    }

    .ele span.active {
        color: orange;
        border-bottom-color: orange;
    }

    .right-part {
        float: right;
    }

    .right-part .line {
        margin: 0 10px;
    }

    .right-part span {
        line-height: 68px;
        cursor: pointer;
    }
</style>

Login.vue

<template>
  <div class="header">
        <div class="slogan">
            <p>老男孩IT教育 | 帮助有志向的年轻人通过努力学习获得体面的工作和生活</p>
        </div>
        <div class="nav">
            <ul class="left-part">
                <li class="logo">
                    <router-link to="/">
                        <img src="../assets/img/head-logo.svg" alt="">
                    </router-link>
                </li>
                <li class="ele">
                    <span @click="goPage('/free-course')" :class="{active: url_path === '/free-course'}">免费课</span>
                </li>
                <li class="ele">
                    <span @click="goPage('/actual-course')" :class="{active: url_path === '/actual-course'}">实战课</span>
                </li>
                <li class="ele">
                    <span @click="goPage('/light-course')" :class="{active: url_path === '/light-course'}">轻课</span>
                </li>
            </ul>

            <div class="right-part">
                <div>
                    <span @click="is_show=!is_show">登录</span>
                    <span class="line">|</span>
                    <span>注册</span>
                </div>
            </div>
            <Login v-show="is_show" @close="close_login"></Login>
        </div>
    </div>
</template>

<script>
import Login from './Login'
export default {
  name: 'Header',
  data () {
    return {
      // sessionStorage中有url_path就使用它,没有就是 /
      url_path: sessionStorage.url_path || '/',
      is_show: false
    }
  },
  methods: {
    goPage (UrlPath) {
      // 已经是当前路由就没有必要重新跳转
      if (this.url_path !== UrlPath) {
        // js控制路由跳转
        this.$router.push(UrlPath)
      }
      // 把当前路径加入到了sessionStorage
      sessionStorage.url_path = UrlPath
    },
    close_login () {
      this.is_show = false
    }
  },
  // created() {
  //     sessionStorage.url_path = this.$route.path;
  //     this.url_path = this.$route.path;
  // }
  components: {
    Login
  }
}
</script>

<style scoped>
 .header {
        background-color: white;
        box-shadow: 0 0 5px 0 #aaa;
    }

    .header:after {
        content: "";
        display: block;
        clear: both;
    }

    .slogan {
        background-color: #eee;
        height: 40px;
    }

    .slogan p {
        width: 1200px;
        margin: 0 auto;
        color: #aaa;
        font-size: 13px;
        line-height: 40px;
    }

    .nav {
        background-color: white;
        user-select: none;
        width: 1200px;
        margin: 0 auto;

    }

    .nav ul {
        padding: 15px 0;
        float: left;
    }

    .nav ul:after {
        clear: both;
        content: '';
        display: block;
    }

    .nav ul li {
        float: left;
    }

    .logo {
        margin-right: 20px;
    }

    .ele {
        margin: 0 20px;
    }

    .ele span {
        display: block;
        font: 15px/36px '微软雅黑';
        border-bottom: 2px solid transparent;
        cursor: pointer;
    }

    .ele span:hover {
        border-bottom-color: orange;
    }

    .ele span.active {
        color: orange;
        border-bottom-color: orange;
    }

    .right-part {
        float: right;
    }

    .right-part .line {
        margin: 0 10px;
    }

    .right-part span {
        line-height: 68px;
        cursor: pointer;
    }
</style>

6.登录注册功能接口分析

1 发送手机短信验证码接口(阿里,腾讯)
2 注册接口(手机号和验证码)
3 密码登录(多方式登录:手机号+密码,邮箱+密码,用户名+密码)
4 手机号+验证码登录
5 通过手机号判断是否注册登录过的接口
深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值