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

  • 相关阅读:
    LeetCode Find Duplicate File in System
    LeetCode 681. Next Closest Time
    LeetCode 678. Valid Parenthesis String
    LeetCode 616. Add Bold Tag in String
    LeetCode 639. Decode Ways II
    LeetCode 536. Construct Binary Tree from String
    LeetCode 539. Minimum Time Difference
    LeetCode 635. Design Log Storage System
    LeetCode Split Concatenated Strings
    LeetCode 696. Count Binary Substrings
  • 原文地址:https://www.cnblogs.com/joy-field/p/12987219.html
Copyright © 2011-2022 走看看