Git&Github



Git是一个分布式版本控制系统, Github是一个为用户提供Git服务的网站

基本概念

  • 仓库(Repository):存放项目代码,多个开源项目存放多个仓库

  • 收藏(star):收藏项目

  • 复制克隆项目(fork):该fork的项目时独立存在的,把项目复制过来自己用

  • 发起请求(Pull request):基于fork的动作,在别人的fork项目上新增了功能,觉得不错,想合并到原本项目里,会向原有项目创建人发送请求,原有项目人同意即可添加你的代码

  • 关注(watch):关注别人项目,及时收到更新的消息

  • 事物卡片(lssue):发现代码BUG,但是目前没有成型代码,需要讨论时用,比如别人发现你的项目中有bug就会给你发送issue来提醒你

Github

  • 关于GitHub访问的问题
  1. 第一种方法就是挂梯子了,毕竟GitHub是国外的服务器,这点理所应当,不止是一般的VPN,我在挂学校的vpn时也能实现很流畅的访问
  2. 第二种就是我在网上搜罗了一种不用挂梯子也能访问的方法
    1. 访问IP查询网站
    2. 在搜索框里搜索(GitHub.com),就会出现以下页面,找到该地址并记下来
    3. 然后再在搜索框中搜索(github.global.ssl.fastly.net),找到地址并记下来
    4. 将这两个地址写到C:\Windows\System32\drivers\etc 路径下的 hosts文件
    5. 刷新dns后(ipconfig /flushdns)就可以访问啦,不过速度emmm

Git

  • Git和Github的区别

    • Git是一个分布式版本控制系统,简单的说就是一个软件,用于记录一个或若干文件内容变化,以便来查阅特定版本修订情况的软件。

    • Github是一个为用户提供Git服务的网站,简单说就是一个可以放代码的地方(也可以放其他内容)。Github除了提供管理Git的web界面外,还提供了订阅、关注、讨论组,在线编辑器等丰富的功能。

    • 目前我们使用到的 Git 命令都是在本地执行,如果你想通过 Git 分享你的代码或者与其他开发人员合作。你就需要将数据放到一台其他开发人员能够连接的服务器上,所以就可以使用 Github 作为远程仓库

基本工作流程

  • Git工作区域

  • 向仓库中添加文件流程

初始化

  1. 基本信息设置
    1
    2
    3
    4
    git config --global user.name '用户名'
    git config --global user.email '邮箱地址'

    该设置在github仓库主页显示谁提交了该文件
  2. Git仓库的初始化
  • 即让Git知道需要他来管理这个目录
    1
    git init
  • 执行后,打开这个项目目录下,点击隐藏目录你会发现多了一个.git文件夹。不能删除,也不能随意更改

Git常用命令

  • 上传文件至仓库

    1. git status:查看当前工作状态
    2. git add:将工作区文件添加到缓存区,可以加–all批量提交
    3. git commit -m “注释内容”:提交至版本库
  • 删除文件

    1. git rm:从git中删除文件
  • 将本地仓库同步到远程仓库

    1. 先将远程仓库的项目复制到本地
      • git clone 线上仓库地址
    2. 操作完文件将文件添加到本地仓库
    3. git push可将本地仓库同步到远程仓库
    4. 用git pull拉取线上的最新版本
    • 如果要同步到其他仓库
      1
      2
      3
      4
      5
      6
      7
      8
      先建立连接
      git remote add name http://xxxxxxxx.git (如果是clone下来的可以省略)

      然后拉取最新版
      git pull name branch //有一种情况是因为readme.md文件不在本地会报错 只需要git pull --rebase name branch本地生成readme文件

      然后推送到仓库
      git push name branch
  • 查询文件

    • git status : 查看工作目录中文件的状态(已跟踪(已提交 已暂存 已修改) 未跟踪)
    • git diff : 查看未暂存的修改
    • git diff –cache : 查看未提交的暂存
    • git log –oneline : 查看提交记录
  • 分支

    • 分支的本质其实就是一个提交对象!!!
    • HEAD: 是一个指针 它默认指向master分支 切换分支时其实就是让HEAD指向不同的分支,每次有新的提交时 HEAD都会带着当前指向的分支 一起往前移动
    • 创建分支 : git branch branchname
    • 切换分支 : git checkout branchname
    • 创建&切换分支 : git checkout -b branchname
    • 版本穿梭(时光机) : git branch branchname commitHash
    • 普通删除分支 : git branch -d branchname
    • 强制删除分支 : git branch -D branchname
    • 合并分支 : git merge branchname
  • git分支的注意点:在切换的时候 一定要保证当前分支是干净的(已提交状态)!!!

  • 后悔药

    • 工作区
      • 如何撤回自己在工作目录中的修改 : git checkout –filename
    • 暂存区
      • 如何撤回自己的暂存 : git reset HEAD filename
    • 版本库
      • 如何撤回自己的提交 : git commit –amend
        1. 注释写错了,重新给用户一次机会改注释

日常开发流程

  1. git remote add <名字> <链接>
    • 先建立连接
  2. git checkout -b 新分支名称
    • 创建新分支并切换到新分支
  3. git push -u 连接名字 云端分支名字
    • 将新创建的分支push到云端,并且起相同的名字和本地的分支对应起来
  4. git status
    • 查看当前工作状态
  5. git add *
    • 将工作区文件添加到缓存区
  6. git commit -m “注释内容”
    • 暂存区内容提交至版本库
  7. git push
    • 将该分支提交到远程仓库
  8. git checkout master
    • 切换回主分支
  9. git merge 新分支
    • 将新分支的代码合并到主分支上
  10. git push 连接名字 分支
    • 这样分支和主分支就都提交到远程仓库上了