day 92 git远程连接、 git项目创始者和开发者、 ssh连接和https连接、 pycharm操作git、 协同开发、 合并分支出现的冲突、分支线上分支合并、vue登录页面

昨日内容回顾

# 1 轮播图接口
	-封装了一个BaseModel基类, utils/model.py下
    -home的app下的models.py创建Banner表
    -视图(继承哪个试图类)  queryset对象[:3]
    -路由自动生成
    -返回多少张,通过setting的配置实现
    	-在setting包下新建const.py
        变量名=变量值
        -在dev.py
        from  .const import *
# 2 前端轮播图
	-elementui的跑马灯  v-for  :src
    -axios发送请求
# 3 git
	-工作区,暂存区,版本库
	-git init  # 生成一个.git的文件夹感觉没
    -git status # 查看状态(红色和绿色),必须全绿在提交到版本库
    -git add . # 提交到暂存区
    -git commit -m '文字' # 从暂存区提交到版本库
    -git checkout . # 把工作区的代码恢复到版本库中最新的代码
    -git reset . # 把暂存区的东西拉回到工作区(原来是绿的变红了)
    -git reset --hard 版本号 # 回退到某个版本
    分支
    -git branch 查看所有分支,如果分支是绿色,是在当前分支是
    -git branch 分支名 # 创建分支
    -git chekouk kev # 切换分支
    -git chekouk -b dev # 创建并切换到dev分支
    -git branch -d dev # 删除dev分支,不能在这个分支上
    -git merge dev  # 必须再其他分支(master), 合并dev

# 4 出现冲突就两种情况
	-分支合并
    -你和同事在同一条分支上改了相同的代码

今日内容

1 git远程连接

# 码云(国内,快)
# 新建仓库的时候,不要勾选Readme初始化这个仓库
# 现在什么都没有,新建仓库
	mkdir lqz_test
    cd lqz_test
    git init 
    touch README.md
    git add README.md
    git commit -m "first commit"
    git remote add origin https://gitee.com/crazy-husky/lqz_test.git # 链接远程
    git push origin master
# 已经有了仓库
	cd existing_git_repo
    git remote add origin https://gitee.com/crazy-husky/lqz_test.git
    git push -u origin master
# git 远程操作命令
	-git remote 查看远程仓库(没有就看不到)
    -git remote add origin https://gitee.com/crazy_husky/lqz_test.git # 跟远程仓库建立链接
    -git push origin master # 把本地master提交到远程的origin
origin, 需要输入用户名和密码(之前存的需要删掉)

2 git项目创始者和开发者

# 1 项目创始者,如上
# 2 项目的开发者, 参与者(换了一太台电脑),把代码拉下来继续开发
	- git clone https://gitee.com/crazy-husky/lqz_test.git
    - 能看到完整的版本和日志控制
    - 可以回复到任意版本
    	-git rest --hard 版本号
    -git checkout . # 表示回到指针指向的版本,因为已经用git rest --hard把指针移动了,所以checkout,就是当前在的版本上的东西
# 3 本地新增c.txt文件
	-提交到暂存区
    -提交到版本库(没有提交到远程, 远程没有)
    -提交到远程: git push origin master
        
# 4 让a文件见中的代码成为最新的
	-git pull origin master
# 5 重点每次在提交代码之前,一定要先更新代码(拉), 如果不拉,提不上去

3 ssh连接和https连接

# 1 公司内部大部分用ssh连接
	-领导给你一个git地址(项目地址)
    -你 git clone 地址 到本地
    -改代码,改完了---》提交(禁止)
    -ssh配置,以后都不用输密码了
# 2 配置如何做
	-对称加密(加密和解密用同一套密码)
    -非对称加密(公钥和私钥), 公钥加密,私钥解密
    
    -生成一对公钥和私钥(用命令)
    	-ssh-keygen -t rsa -C "wr@qq.com" 生成到用户家目录的.ssh文件夹下(一对公钥,一对私钥)
    -把公钥复制出来,再码云上配置
# 跟远程操作有三个命令
git pull
git push
-git feacth(一般不用,跟pull是一个东西)

pycharm操作git

# 1 安装git
# 2 再pycharm中配置,setting---》git--->git.exe的地址
# 3 git clone --->等同于下图
# 4 使用pycharm创建本地分支(见下图)
# 5 拉取代码,如下图
# 6 push代码,如下图

协同开发

# 协同开发出现冲突 如何解决
<<<<<<<<< HJEAD
你的代码
=========
别人的代码
>>>>>>>>> origin/master
# 删除你的代码
# 删除同时代码
# 合并你们的代码

合并分支出现的冲突

# 1 分支: 本地分支,远程分支

# 2 创建本地分支
	-git checkout -b dev
# 3 把本地分支提交到远程
	-git push origin dev

线上分支合并

# 如果看到可自动合并,表示合并后不会有冲突,正常操作即可

线上回滚

# 1 切换到master分支
# 2 回滚到某个版本 git reset --hard 版本号
# 3 强制提交代码 git push origin master -f

分支合并出现冲突解决

# 1 远端创建一个dev
	-在远端直接创建
    -本地创建提交到远端
    git checkout -b dev
    git push origin dev
# 2 本地新建一个dev_bug分支
	-dev_bug分支改了文件
    -dev分支改了同样的文件
    -合并就出冲突
    -git merge dev_bug (在dev分支上操作)
    -解决冲突(删你的,同事的, 合并起来)
    -git add . git commit 
    -正常了,冲突解决
# 3 手动线下合并代码并提交到远程
	-git checkout master
    -git merge dev
    -如果出冲突,解决
    -git add .
    -git commit 
    -git push ortgin master

vue登陆页面

# Login.vue
<template>
    <div class="login">
    <span @click="close_login">X</span>
    </div>
</template>

<script>
    export default {
        name: "Login",
        methods:{
            close_login(){
                //子传父组件 this.$emit,给父组件传递一个事件
                this.$emit("close")
            },

        },

    }
</script>

<style scoped>
.login{
    width: 100vw;
    height: 100vw;
    position: fixed;
    left: 0;
    top: 0;
    z-index: 666;
    background-color: rgba(0,0,0,0.3);
}
    span{
        font-size: 30px;
        cursor: pointer;
    }
</style>

# Head.vue
#template中
<div class="right-part">
<div>
<span @click="pull_login">登录</span>
<span class="line">|</span>
<span>注册</span>
</div>
</div>
</div>

<Login v-if="is_login" @close="close"/>
<!--is_login是True就显示,false就不显示-->
</div>
# js中
pull_login(){
    this.is_login=true
},
close(){
    this.is_login=false
},
上一篇:JavaScript事件的绑定


下一篇:JSON学习笔记