Git 与 GitHub详解

Git概述

  • Git版本控制

    • Git是一个版本管理控制系统(缩写VCS),它可以在任何时间点,将文档的状态作为更新记录保存起来,也可以在任何时间点,将更新记录恢复回来。
  • 基本工作流程

      | git仓库          | 暂存区             | 工作目录            |
      | ---------------- | ----------------- | ------------------- |
      | 用于存放提交记录 | 临时存放被修改文件 | 被Git管理的项目目录 |
    
  • Git进入项目目录

    • 直接在控制台里面输入 cd g:/code/A/git-demo
    • 在目标项文件夹内鼠标右击,点击 Git Bash Here
  • Git内的复制粘贴快捷键

    • Ctrl+ins 复制
    • Shift+ins 粘贴

Git基本使用

  • 使用前配置:在使用 git 前,需要告诉 git 你是谁,在向 git 仓库中提交时需要用到。

    • 配置提交人姓名:git config --global user.name 提交人姓名
    • 配置提交人姓名:git config --global user.email 提交人邮箱
    • 查看git配置信息:git config --list
  • 配置修改

    • 如果要对配置信息进行修改,重复上述命令即可。
    • 配置只需要执行一次。
  • Git提交步骤

    • git init 初始化git仓库
    • git status 查看文件状态
    • git add 文件列表 追踪文件,将文件放入暂存区
    • git add . 添加当前目录的所有文件到暂存区
    • git commit -m 提交信息 向仓库中提交暂存区所有代码
    • git commit 文件列表 -m 提交信息 向仓库中提交暂存区的指定文件
    • git log 查看提交记录
  • Git撤销操作

    • git checkout 文件 用暂存区中的文件覆盖工作目录中的文件
    • git rm 文件 删除工作区文件,并且将这次删除放入暂存区
    • git rm --cached 文件 将文件从暂存区中删除,但该文件会保留在工作区
    • git mv 源文件名 新文件名 改名文件,并且将这个改名放入暂存区
    • git rest --hard commitID 将 git 仓库中指定的更新记录恢复出来,并且覆盖暂存区和工作目录
      • 更新记录用 git log 查看
  • Git暂存区查看

    • git ls-files 查看暂存区内的文件目录
    • git ls-files -s 查看暂存区内所有文件对应的Blob对象
    • git ls-files -s -- 文件 查看暂存区内文件对应的Blob对象
    • git cat-file -p Blob对象值 查看Blob对象值的内容
  • Git分支命令

    • git branch 查看分支
    • git branch -a 列出所有本地分支和远程分支
    • git branch 分支名称 创建分支
    • git checkout -b 分支名称 新建一个分支,并切换到该分支
    • git checkout 分支名称 切换分支,并更新工作区
    • git checkout - 切换到上一个分支
    • git merge 来源分支 合并分支
    • git branch -d 分支名称 删除分支(分支被合并后才允许删除)(-D 强制删除)
  • Git暂时保存更改

    • git stash 存储临时改动,将暂存区内的内容临时存储与剪切板,以便于可以跳转到其他分支进行操作
    • git stash pop 恢复改动,重新回到开发分支时,将剪切板内的内容释放至暂存区

Git BUG处理

  • fatal: Unable to create 'D:/Program Files/Git/.git/index.lock': File exists.

    • git操作时修改了一些文件,导致操作冲突被锁住了
    • 解决方案:删掉该文件
    • rm -f /.git/index.lock
  • fatal: not a git repository (or any of the parent directories): .git

    • 一般是没有初始化git本地版本管理仓库,所以无法执行git命令
    • 解决方法:操作之前执行以下命令行: git init
    • 然后执行一下git status查看状态信息

GitHub

  • 本地仓库推送至远程仓库

    • git push 远程仓库地址 分支名称 将本地仓库分支推送至远程仓库
    • git remote add 远程仓库地址别名 远程仓库地址 给远程仓库地址取代号
    • git remote -v 查看仓库地址代号
    • git push 远程仓库地址别名 分支名称 用别名将本地仓库分支推送至远程仓库
    • git push -u 远程仓库地址别名 分支名称 记住推送地址及分支,下次推送只需要输入git push即可
  • 远程仓库克隆至本地

    • git clone 仓库地址 克隆远端数据仓库到本地
      • 本地没有仓库
    • git pull 远程仓库地址 分支名称 拉取远程仓库中最新的版本
      • 本地已存在仓库
  • GitHub共同开发

    • Settings 可以邀请协同者共同完成项目
  • 解决冲突

    • pull 先拉取远程仓库中最新的版本
    • 找到受冲突的代码段,删除多余部分,修改完成
    • push 将本地仓库分支推送至远程仓库
  • Git忽略清单

    • 在目录中新建文件 .gitignore
    • 将不需要git管理的文件写入 .gitignore
  • GitHub跨团队协作

    • Fork 程序员C将程序员A的项目克隆在本地进行修改
    • 程序员C将优化后的仓库推送至远程
    • 程序员C发起 Pull requests 请求
    • 程序员A审核代码
    • 程序员A Merge pull request 合并更新代码库
  • SSH密钥生成

    • ssh-keygen 生成秘钥
    • C:\Users\用户\.ssh 秘钥存储目录
    • id_rsa.pub 公钥名称
    • id_rsa 私钥名称
  • GitHub SSH免登录

    • 私钥保留于计算机本地
    • 公钥配置与GitHub
      • GitHub 账户设置
      • SSH and GPG keys 栏目
      • 点击 New SSH key
      • 将公钥内的内容粘贴至 Key 选框中
      • 配置仓库:在复制仓库地址时,切换至 Use SSH
  • 为仓库添加详细的说明

    • 在项目中添加一个 readme.md 文件
    • 推送至远程仓库
posted @ 2020-08-22 22:29  wing1377  阅读(132)  评论(0编辑  收藏  举报