Git版本控制工具

版本控制分类:

集中式管理:

分布式管理:

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 分支

原文地址:https://www.cnblogs.com/joy-field/p/12987219.html