zoukankan      html  css  js  c++  java
  • 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 文件
      • 推送至远程仓库
  • 相关阅读:
    2018.4.26 lvm
    2018.4.25 github创建新项目
    2018.4.24 快排查找第K大
    2018.4.24 flask_mail使用
    SpringBoot中使用ES和MongoDB常用API
    设计模式-Template_Method模式
    设计模式-Chain of Responsibility模式
    设计模式-Observer模式
    设计模式-Adapter模式
    设计模式-Strategy模式
  • 原文地址:https://www.cnblogs.com/SharkJiao/p/13547450.html
Copyright © 2011-2022 走看看