python全栈开发第十二天(版本控制,版本控制器 Git)

版本控制

版本控制是对软件开发过程中,对各种代码,配置文件,说明文件变更的管理,是软件配置管理的核心思想
编写一个成熟可用的程序是一个工作量很大的工程,不是我们一次性可以搞定的工作,所以在开发过程中有以下特点:
多人协作:ui 前端 后端 运维 产品
版本迭代:针对当前代码进行修改和升级,通过几次迭代达到预想的目的

常见的版本控制工具:
CVS:是一个c/s的版本控制软件,主要用于开源的软件管理,是多个开发人员通过一个控制中心系统来记录版本,从而达到保证文件同步的目的,是一种很老的集中式版本控制工具
svn:也是集中式版本控制工具,他是最优的集中式控制工具
Git:是一个分布式版本控制工具

分布式
在这里插入图片描述
集中式
在这里插入图片描述
集中式管理工具:开发者的合作方式是公用一个仓库(repository),无论这个仓库是在本地还是在远端,只要是所有成员都共同存取同一个仓库,那么这种方式就是集中式(centralized)版本控制。
缺点:代码集中于服务器,一旦代码出现问题,很难处理
优点:代码都集中在svn服务器,不会发生个别新手污染代码的问题

分布式管理工具:每个服务端都是一个服务器,都有一个版本库,开发者可以在无网络的环境中进行代码操作,是通过比对下载

Git的发源

作者linux torvalds,
在这里插入图片描述

Git原理

工作区 暂存区 仓库

工作区:对于文件的添加,修改,删除
暂存区:将工作区的操作完成小阶段的存储,是版本库的一部分
仓库区:表示个人开发的小阶段,记录的各种版本都是可以查看回退
在这里插入图片描述

Git基本操作

1、下载安装
通过官网下载Git的安装包,,git官网地址: https://git-scm.com/

2、基本操作
创建gitprocess目录 在此目录内执行 init 初始化仓库
<1>初始化一个git目录 创建一个仓库
git init 执行结束目录下会多一个.git 的隐藏文件
在这里插入图片描述
<2>配置个人消息
配置局部身份
设置用户名 git config user.name ‘’
设置用户邮箱 git config user.enmail ‘’

在这里插入图片描述
配置全局身份
git config --global user.name ‘’
git config --global user.enmail’’

使用身份:先去找局部的身份,如果没有再去找全局的配置身份

<3>操作
创建一个1.txt
查看状态 git status
红色表示工作区改动的文件
在这里插入图片描述
git add 将文件提交到暂存区
在这里插入图片描述
查看git版本库状态 绿色表示暂存区的文件

在这里插入图片描述
git commit 将暂存区的文件提交到仓库并生成一个新的版本
在这里插入图片描述
查看git版本库状态 当工作区没有变动 暂存区中的内容已经提交 会提示干净的工作区
在这里插入图片描述
查看版本信息
git log
在这里插入图片描述
git reflog
在这里插入图片描述
推荐使用reflog 会记录已经提交和回退的所有版本记录

查看版本差异
git diff 版本号 版本号
在这里插入图片描述
在这里插入图片描述
版本回退
回退仓库中的代码 (在工作间区中间的版本文件都会删除)
git reset --hard 版本号 将整个版本库回退到指定版本
在这里插入图片描述
在这里插入图片描述
工作区代码回退 (就像撤回)
git checkout
git restore

暂存区代码回退
git reset HEAD 文件名 将暂存区中的内容直接撤销
git restore --staged 将暂存区的内容撤销至工作区

将文件回退到指定版本(在工作区不删除的中间版本的文件只是将文件回到指定的版本)
git reset 版本号 文件名
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
第一步:执行 git reset 要回退到的版本号 文件名
第二部:执行 git checkout 文件名
第三步:执行 git commit -m ‘描述信息’ 文件名

分支操作
查看所有分支
git branch
在这里插入图片描述
创建分支
git branch 分支名
在这里插入图片描述

切换分支
git checkout 分支名

创建并进入分支
git checkout -b 分支名
在这里插入图片描述
删除分支
git branch -d 分支名
在这里插入图片描述
分支代码合并
分支代码合并
git merge 分支名

分支冲突

    两个分支修改了同一个文件的同一行代码
    切换分支到wzy
    修改1.py  第5行
    添加并提交
    切换分支到master
    修改1.py 第五行
    添加提交
    代码合并 git  merge wzy  
    或出现以下问题:

或出现以下问题:
在这里插入图片描述

解决办法:
只能手动修改
选择一个分支修改的内容保存退出
添加 
提交 提交时不用指定文件 git  commit  -m ‘描述’

Github的使用

全球最大的开源技术社区
1、注册
2、创建仓库
3、拉取远程仓库
HTTPS方式拉取的仓库提交时会要输入账号密码,
SSH方式拉取仓库不需要,但在这之前需要在本地生成公钥私钥,并把公钥内容复制到远程仓库的个人账号。
这里的截图是码云的但与Github基本一样,码云是国内的,GitHub是国外的

通过HTTPS拉取
在这里插入图片描述
git clone 地址
在这里插入图片描述
4、上传
切换目录到mygit 修改 README.md
git add .
git commit -m ‘’ 文件

将修改后的内容上传到远程仓库
git push 需要输入账号和密码

通过SSH拉取
生成密钥
ssh-keygen -t rsa
在这里插入图片描述
将公钥放到github上
       先找到本地公钥信息复制
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
从github上拉取仓库
通过ssh拉取
在这里插入图片描述

上传
       修改内容上传
       git push 不需要输密码
       git pull 只拉取修改后的内容

多人协作

github的使用
ssh秘钥验证
生成秘钥
ssh-keygen -t rsa
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
git remote 返回远程所有的分支 默认分支是origin
在这里插入图片描述
1.一个远程仓库允许多个人开发,一个人就是一个分支,以两个人为例
2.假设有开发者A仓库拥有者和开发者B,A拉取远程仓库
3.A创建分支并推送分支到远程仓库
git checkout dev
git push --set-upstream origin dev 将本地的dev分支推送远程,与远程的dev分支进行关联
在这里插入图片描述
注意:如果B也要通过ssh拉取仓库,必须把B的ssh公钥放到远程仓库
4.B拉取仓库查看分支只有master,创建远程origin的dev分支到本地
git checkout -b dev origin/dev
5.编写代码并生成版本,推送到远程分支
git push origin dev
6.在网站上A拥有者会收到一条请求,可以选择在网站合并分支
7.命令行合并分支
A看查看自己的本地分支,只有master
git branch
切换分支到master
拉取最新的数据
git pull
切换分支到dev
git checkout dev
拉取最新的数据
git pull
切换到主分支合并分支
git checkout master
git merge dev

协助开发fork模式

fork 模式参与一个人的项目,fork可以获取别的项目,然后进行提交,申请加入,对于项目主来说,知识去控制我们的提交申请能不能合并到他的项目中。
1.加入A的项目,fork模式,参与A项目的开发
进入A项目的仓库单击fork到自己的仓库
2.将fork到自己仓库的代码拉取到本地
3.然后编辑源代码生成版本 提交到远程
4.到github仓库中选择pull requets>new pull request
5.创建请求给A create pull request
6.A会收到pull requets 信息 选择是否允许jiuok了

邀请别人一起开发项目:
1.进入仓库的settings 选择collaborators
2.输入邀请小伙伴的用户名 并生成邀请链接

创建团队:
1.进入个人的设置
2.选择organizations > neworanization
3.配置团队信息 配置完整就是邀请了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值