版本控制分类:
集中式管理:
分布式管理:
GitHub
Git安装:直接下一步
Git安装验证:dos面板输入命令:git --version
基本配置:需要设置用户名和邮箱
git config --global user.name “用户名”
git config --global user.email “邮箱地址”
Git存储逻辑:
工作区:就是编辑代码/文件的页面
缓存区:将工作区的内容写入到缓存区,等待提交到版本库 内存
版本库:用来存储版本
创建版本库:
1、 本地创建一个文件夹,用于后续做版本库,初始化 git init
正常创建文件:
git add 文件名—将工作区的内容提交到暂存区(缓存区)
git commit -m “版本注释信息”--将暂存区的内容创建为一个新的版本
git status:查看当前状态
git log:查看git所做的操作
git log --pretty=oneline:查看简略信息
git reset --hard 版本号/HEAD^^^/HEAD~1000:针对已经创建的版本
git reflog:查看过往日志
实验步骤:
1、 创建一个版本(新建一个文件,使用命令[git add 文件名; git commit -m “版本提示信息”])
2、 继续修改工作区中的文件内容,重新创建第二个版本
3、 需要回滚到第一个版本,也就是修改文件内容之前的版本:git reset --hard 版本号/HEAD^/HEAD~1
4、 需要重新返回到第二个版本上,只能通过版本号(git reflog),再通过 git reset --hard 版本号
版本操作:
版本内容修改:
1、 尚未提交add,仅仅是在工作区中修改了文件内容:
git checkout -- 文件名:撤销工作区中的修改内容
2、已经完成了提交,生成了新版本。需要回滚到老版本上
dos命令:预览文件内容 type 文件名
mac命令:预览文件内容 cat 文件名
git checkout 分支名
文件删除命令:
dos:del 文件名
mac/Linux:rm 文件名
通过命令的删除,文件是不会经过回收站,直接是彻底删除
硬盘文件删除逻辑:彻底删除之后,仅仅是将文件不显示,依然留在硬盘里面,除非你继续写入新的内容覆盖掉留在硬盘中文件所占的空间,文件才会彻底删除
版本删除:
1、 仅仅在工作区中创建了新的文件,尚未add,也没有commit。可以直接手动删除,此种删除文件会丢失,如果需要找回,找一些工具将删掉的文件重新从硬盘中写入
2、 将目标文件创建了版本,然后删除掉工作区中的文件内容,通过已经创建的版本,回退到上一个版本上去。因为是通过版本回退重新生成了一个当前版本的文件,也就是说之前工作区所修改的文件内容无法还原的
版本文件的重命名:
1、git mv 当前版本文件名称 修改后的版本文件名称:修改版本文件名,修改之后是在暂存区中暂存,需要手动提交才会彻底生效
2、git commit -m “重新提交”
备份
git add -A:提交当前仓库中所有的文件到暂存区
A:表示ALL,
git commit之后,发现注释有误或者遗漏了某些内容。
直接重新进行一次版本的提交,讲有误的注释修改或者补上遗漏的内容
git 命令的使用
创建版本库
提交版本
重命名
修改
删除
git 版本分支的使用:分支使用+GitHub项目使用
主干、分支
master:主分支/主干,用来负责生成版本代码V1.2、V1.3
branch:分支单词
git branch:查看当前所在的分支
git checkout -b 分支名:创建并切换到分支
git branch 分支名:创建分支
git checkout 分支名:切换分支
git branch -d/D 分支名:删除分支
需要删除文件,需要解除命令,操作如下:
$ git --help # 帮助命令
$ git pull origin master # 将远程仓库里面的项目拉下来
$ dir # 查看有哪些文件夹
$ git rm -r --cached .idea # 删除.idea文件夹
$ git commit -m '删除.idea' # 提交,添加操作说明
合版本
分支特点:
分支之间,分支和主干之间,彼此互不可见,不互相产生干扰
分支合并到主干:
git merger 分支名
分支冲突:多个分支同时对同一个文件产生了(不同的)操作,合并分支的时候,主干会比较两个分支上面该文件的内容,如果内容不一致,就会产生冲突
冲突解决:git仅仅将冲突的内容提供给用户,需要用户手动取舍,然后自行提交为新的版本文件
框架:测试经理完成框架的搭建,以及框架提交到master作为主干内容
普通测开人员,日常工作就是在master的基础上创建自己的分支,完成自己模块的开发工作,但是因为master主干有些内容是会在开发分支上做修改的(比如:配置文件
首先只修改分支dev上文件的内容,合并分支到主干。合并完之后再次在主干上对合并进来的文件进行修改,修改完之后重新提交版本
HEAD指针,HEAD指哪,打哪
合并分支时禁用fast forward模式:
git merge --no-ff -m “提示信息” 待合并分支
git标签:相当于给版本加一个标签,可以直接根据标签来查找指定版本,不需要通过版本号
git tag:查看已有的所有标签
git tag -a 标签名 -m "备注信息" 版本号 :针对指定的版本号打标签
常用操作:
git tag 标签名:对当前版本创建轻标签
git tag :查询已创建标签
git show 标签名:
git tag 标签名 -m “注释信息”/ git tag -a 标签名 -m “注释信息” :打标签的时候增加附注标签信息,-a选项表示声明要打一个含附注的标签。
git tag -a 标签名 -m "备注信息" 版本号 :针对指定的版本号打标签
git checkout 标签名:切换到指定标签,此时不位于任何分支,处于游离状态,可以考虑基于这个标签创建一个分支
git tag -d 标签名: 删除指定标签
git push origin 标签名:推送单个标签
git push origin --tags:推送本地所有标签
git push origin :refs/tags/标签名 :远程删除指定标签
GitHub使用:
github账号
readme:版本修改之后的备注信息,对过往版本进行了什么样的修改所做的一个备注
ssh密钥的配置:
1、 在本地生成自己的ssh密钥
在用户下面找 .ssh 文件夹
本地没有找到 .ssh 文件夹,可以自行创建,方法见https://blog.csdn.net/woiangaoiowe/article/details/106449238
2、 将本地的ssh密钥配置给github线上项目
3、 在本地操作github线上项目
1、 将线上羡慕download到本地,clone
2、 在本地使用命令:git clone 复制的github项目的clone地址
4、 推送本地操作到github上
关键字:push/推送
git push -u origin 分支名
github选项 add .gitignore作用:
python源文件被编译执行之后,会生成一个 .pyc 的字节文件,但是该文件对我们来说是没有什么作用的,所以我们希望 .pyc的文件不要在仓库中出现。所以需要设置 github忽略 .pyc 类型的文件
git checkout-b 分支
git branch 分支