zoukankan      html  css  js  c++  java
  • 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 分支

  • 相关阅读:
    NET与Matlab结合 —— 最小二乘法直线拟合(C#)
    C#基础概念二十五问
    C# where子句
    最小二乘法
    蛙蛙推荐:一套.net窗体身份验证方案(解决了防止用户重复登陆,session超时等问题)
    在 ASP.NET 上实现锁定表头、支持滚动的表格的做法
    一个使用泛型的工厂类
    反射技术与设计模式
    ASP.NET实现匿名访问控制
    危险字符过滤的类
  • 原文地址:https://www.cnblogs.com/joy-field/p/12987219.html
Copyright © 2011-2022 走看看