Git系列(1)

前言

git & github中的专业术语

watch  star  fork  issue  repository

pull requeset  pull  merge  fetch

git官网:      https://git-scm.com

--------------------------------------------------------------------

1.  git 工作区域

  git有三个区域

    *.本地仓库

      ^git commit

    **.暂存区  -临时存储

      ^ git add 

    ***.工作区   -写代码

git

  -版本控制

    -协同修改

    -数据备份

    -版本管理

      -文件系统快照

    -权限控制

    -历史记录

      -查看修改人,时间,内容,日志信息

    -分支管理

      -多条分支同时推进任务

  -git简介

  -git命令行操作

设置签名

      用户名
      邮箱地址
    作用:区分不同开发人员的身份
    命令:
        ---项目级别/仓库级别
              仅在当前本地库范围内有效
                git config
              信息保存位置:./.git/config文件
        ---系统用户级别
              登录当前操作系统的用户范围
                git config  --global
              信息保存位置: ~/.gitconfig文件
        ---级别优先级
            就近原则:项目级别优先系统用户级别

基本操作

      状态查看操作
            git status    
     添加操作
            git add
      提交操作
            git commit

    版本前进后退
        基于索引值操作
            git reset --hard[局部索引值]
        使用^符号:
            只能后退
            git reset --hard HEAD^
       使用~符号
            只能后退
            git reset --hard HEAD~n

   删除文件并找回
      前提条件:删除前,文件存在时的状态提交到了本地库
      操作:      git reset --hard[指针位置]
      指针位置:删除操作已经提交到本地库,历史记录或当期位置
               删除操作未提交到本地库,使用HEAD

   比较文件差异:
          git diff [文件名]
              将工作区的文件和暂存区进行比较
          git diff [本地库中历史版本] [文件名]
              将工作区的文件和本地库历史记录比较
           不带文件名比较多个文件

   git reset --hard
    reset命令的三个参数对比
        --soft参数
            仅仅在本地库移动HEAD指针
        --mixed参数
            在本地库移动HEAD指针    
            重置暂存区
        --hard参数
            在本地库移动HEAD指针    
            重置暂存区
            重置工作区

分支管理:
  什么是分支?
       在版本控制过程中,使用多条线同时推进多个任务
  分支的好处
        同时并行推进多个功能开发,提高开发效率
        各个分支在开发过程中,互不影响
  分支操作
        创建分支
            git branch [分支名]
        查看分支
            git branch -v
        切换分支
            git checkout [分支名]
        合并分支
            第一步:切换到接受修改的分支(被合并,增加新内容)上
                   git checkout[被合并分支名]
            第二步:执行merge命令
                   git merge[有新内容分支名]
        解决冲突
            第一步:编辑文件,删除特殊符号
            第二步:把文件修改到满意的程度,保存退出
            第三步:git add[文件名]
               第四步:git commit -m "日志信息"
                    attention:此时不能带具体文件名

克隆
    命令
        git origin [远程地址]

  克隆有三个效果
          *.完整的把远程库下载到本地
          **.创建origin远程地址别名
          ***.初始化本地库    
拉取
    pull == fetch + merge
      git fetch [远程库地址别名][远程分支名]
      git merge [远程库地址别名/远程分支名]

解决冲突:
    如果不是基于远程库的最新版所做的修改,不能推送,必须先拉取
    拉取下来如果进入冲突状态,则按照'分支冲突解决'操作解决即可

本地修改,推送到远程

---------------------------------------------
SSH登录
    进入当前用户的家目录
      cd ~
    删除.ssh目录
      rm -rvf .ssh
    运行命令生成.ssh密钥目录
     ssh-keygen -t rsa -C 邮箱地址
        [注意:这里-c这个参数是大写的C]
    进入.ssh目录查看文件列表
      cd .ssh
    查看id_rsa.pub文件内容
      cat id_rsa.pub
    复制id_rsa.pub文件内容,

 登录GitHub,点击用户头像-->Setting-->SSH and GPG keys  --> New SSH Key
    输入复制的密钥信息
    回到Git bash 创建远程地址别名
      git remote add origin_ssh 远程地址

----------------------

git 工作流

  分类

    集中式工作流
          GitFlow工作流
          Forking工作流

原文地址:https://www.cnblogs.com/xzpin/p/10816608.html