(一)git版本控制
- 版本控制是对软件开发过程当中的各种程序代码,配置文件,说明文档等文件变更的管理,是软件配置管理的核心思想之一。
- 编写一个成熟可用的程序是一个工作很大的工程,不是我们或一次性可用搞定工作,所以在开发过程当中,有以下特点:
多人协作:UI,前段,后端,数据库,运维
版本迭代:针对当前代码进行修改和升级,通过几次迭代 达到预想的目的
版本控制工具
CVS 是一个c/s结构的版本控制软件,主要用于开源的软件管理,是多个开发人员通过一个版本控制中心系统来记录文件版本,从而达到保证文件同步的目的,是一种很古老的集中式版本控制工具。
SVN 也是集中式版本控制工具,他是最优秀的集中式版本控制工具。
GIT 是一个分布式的版本控制工具
集中式版本管理工具
缺点:代码集中于SVN服务器上,一旦发生问题,很难挽回
优点:代码集中于SVN服务器上,不会发生个别新手污染代码的情况
分布式版本控制
版本控制常用名词
拉取 pull 从服务端下载代码
提交 push commit 提交代码
合并 将两份代码进行结合
冲突 两个开发版本对同一个文件有不同的修改,这时合并会有 冲突
描述 所有提交的版本都必须有详细的版本描述
时间:提交人:提交的功能
2019-07-01:边进辉:提交登陆验证码功能
回溯 进行版本内容的回滚。
(二)Git的发源
- Git的作者是linux之父linus torvalds。
在起初,linux开源项目的代码是有linus本人通过linux命令diff和patch两条命令手动完成,后来项目越来越大,代码库让linus疲于奔命。
Bitkeeper公司的东家BTMover出于人道主义(bitkeeper是一款收费的版 本控制工具),授权linux社区免费使用,但是linux社区的大佬有一些江 湖习气,开始破解bitkeeper,samba的作者andrew破解成功了,但是被 BTMOver公司发现,收回免费使用权,要求linus道歉。Linus闭关一周, 写出了git,在一个月,git成功接管了linux社区的版本控制工作,并且开 始开源。
Git的原理:
Git分为本地库和远程库。
我们提交代码的步骤
(三)git基本操作
- 通过官网下载git的安装包,git官网地址: https://git-scm.com/
下载完成得到exe文件
安装完成之后,在windows下的任意目录右键可以看到git的命令行
Git bash执行linux的命令
Git 需要把当前的目录转换为git目录
Git init 初始化一个git目录
创建git项目提交身份
配置局部身份
Git config user.name laobian 设置提交名
Git config user.email laobian@qq.com 设置提交邮箱
Cat .git/config 查看局部提交身份
Git config --global user.name laobian 设置全局提交名
Git config --global user.email laobian@qq.com 设置全局提交邮箱
查看全局提交胜负
Git ~/.gitconfig
优先级
就近原则,有局部用局部,没有局部用全局,二者不可以都没有
查看当前版本的状态 Git status
未提交状态
将文件提交到缓冲区
提交到缓冲区,没有提交到本地库的状态
提交文件到本地库
git commit 1.txt
Git commit -m “描述” 文件 提交指定文件
Git commit -m “描述” 提交当前缓冲库当中的所有文件
提交完成的状态
查看详细版本信息
列表性展示版本信息
指针 head
分支:一个独立的开发路线。
项目创建之初就有一个分支(branch) master
但是我们还可以创建新的分支
Git branch 分支名称 创建分支
查看分支 git branch -v
切换分支
分支合并
将online合并到master上
Git merge 要合并分支
合并冲突
冲突的文件里面展示的冲突的内容
解决完冲突内容进行一次提交,当次提交不指定具体提交的文件名称
解决冲突的步骤
1、进行合并
2、进入冲突文件,进行手动的代码调整
3、进行add将冲突文件添加到缓冲区
进行commit提交,注意不要指定具体提交的文件名称
4、冲突解决完成
(四)Github的使用
- 官网https://github.com/
- 1、注册
2、使用
搜索git项目
以压缩的形式下载
克隆项目:命令 git clone
创建版本仓库,也就是项目的远程库
3、上传
1、关联本地库
生成公私钥:命令 ssh-keygen -t rsa
测试和github的通信 命令:git git@github.com
Git remote 返回所有的别名
别名就是用来指代远程库的地址,方便上传和下载代码
Git remote add 别名 远程库名称
远程克隆下来的项目仓库会自带别名叫做origin,我们不需要惊讶
Our https://github.com/PythonBian/pythonBase.git
Spider https://github.com/PythonBian/Spider.git
Git remote -v 别名映射的远程库地址
查看具体别名的详情
Git remote show 别名
修改别名
Git remote rename oldname newname
移除别名
Git romote remove 别名
向远程库提交的流程
1、保证修改的代码已经形成版本
2、将新的版本提交给远程库
Git push 别名 分支
在这里我们要注意:
我们在开发的时候,处于协作模式。我们只是项目的一个开发者,通常会创建一个本地的分支用来开发,开发完成,没有问题,然后合并到本地的master,然后将本地的master提交到远程的master上。在这里,至少要保证当前mater的代码是远程库最新代码
Git fetch 别名
将远程库最新的代码拉取到本地
(五)协助和pycharm
- 我们要加入大牛的项目fork模式
1、找到项目,进行fork
2、获取项目完整的源码
Git clone自己账号的项目
3、修改源码
4、申请提交源码
5、大牛允许分支
2、我们要合作开发一个项目
用自己的账号打开当前的连接
团队模式
创建团队
邀请成员
Pycharm 与git的通常用法
然后在pycharm中打开git文件
Ctrl+k 等于命令行add+commit命令
Ctrl+shift+k 等于命令行的push命令
(六)拓展GITLIB的搭建
- Gitlib 自己的git管理工具。
Centos7 搭建gitlib服务器
依赖包
Ssh
yum install -y curl policycoreutils-pythonopenssh-server
查看防火墙状态
查看Postfix的状态
Wget
Yum install -y wget
下载gitlib的安装包wget
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm
安装:
修改配置文件
重新加载配置文件
Gitlab-ctl reconfigure
Gitlab-ctl restart
关闭防火墙
访问刚才绑定的ip和端口,默认端口 80
总结
1、本地缓冲库、本地库、远程库
2、Pycharm打开的时项目的根目录
3、Pycharm+github 打开的一定是git实例化过的目录(有.git)
掌握:
Git的基本命令
Git提交的流程
协作开发的流程