Git & GitHub | 青训营

121 阅读5分钟

Git & GitHub | 青训营

这是我参与「第四届青训营 」笔记创作活动的的第1天

一、本堂课重点内容:

  • 开发和交付--对内与对外

  • Android 知识图谱

  • 认识 Android 系统

  • 认识一些基础工具--git

二、详细知识点介绍:

对外 - 为用户创造价值

  1. 第一层交付:页面+逻辑+数据

  2. 第二层交付:多样性需求

  3. 第三层交付:体验+质量+安全+个性化

对于一个客户端开发来讲,我们面对的角色主要包括:

  1. 对外(用户):为用户创造价值,是最终的目的和宗旨,也是整个系统存在的前提
  2. 对内(公司):上面第二个图对应的是更详细的内部交付涉及的团队,实际上比这要复杂的多。这些团队组成了公司这个实体。
  3. 自身(个人):我们通过自身的努力来推进交付流程,提供给用户好用的产品。同时个人也是一个产品,我们需要打造自身的技术品牌,培养自己的技术实力。

本篇文章主要总结git的基本用法

三、Git基本概念与用法

基本概念

我们先来理解下 Git 工作区、暂存区和版本库概念:

  • 工作区: 就是你在电脑里能看到的目录。
  • 暂存区: 英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
  • 版本库: 工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。

下面这个图展示了工作区、版本库中的暂存区和版本库之间的关系:

  • 当执行 git reset HEAD 命令时,暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响。
  • 当执行 git rm --cached  命令时,会直接从暂存区删除文件,工作区则不做出改变。
  • 当执行 git checkout . 或者 git checkout --  命令时,会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区中的改动。
  • 当执行 git checkout HEAD . 或者 git checkout HEAD  命令时,会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。

基本用法

Git 的工作就是创建和保存你项目的快照及与之后的快照进行对比。

目前我觉得比较常用,也是最重要的命令有下面几个:

git clonegit pullgit add 、git commitgit checkoutgit pull

说明:

  • workspace:工作区
  • staging area:暂存区/缓存区
  • local repository:版本库或本地仓库
  • remote repository:远程仓库
$ git init    
$ git add .    
$ git commit  

这段主要用于项目的提交准备工作,接下来就要进行上传项目了

提交与修改

下表列出了有关创建与提交你的项目的快照的命令:

命令说明
git add添加文件到暂存区
git status查看仓库当前的状态,显示有变更的文件。
git diff比较文件的不同,即暂存区和工作区的差异。
git commit提交暂存区到本地仓库。
git reset回退版本。
git rm将文件从暂存区和工作区中删除。
git mv移动或重命名工作区文件。

远程操作

命令说明
git remote远程仓库操作
git fetch从远程获取代码库
git pull下载远程代码并合并
git push上传远程代码并合并

四、远程仓库(Github)

  • 添加远程库

  • 查看当前的远程库

  • 提取远程仓库

  • 推送到远程仓库

  • 删除远程仓库

    (这边主要我就不细讲了,具体资料可以参考 )

五、个人总结:

  • 一个人的视野比一个人的能力更重要

    我觉得,我们现在学的这个课程紧跟住了现代科技的发展,让我们在第一时间和先进的科学技术做了一个亲密的接触,这样的课程能够点燃我们对某一个新兴领域的激情,这算是一个启蒙,让我们对 android 先有了一个大概的了解,这个课程不一定能让我们很好的掌握 android 的理念或者开发,但是能够让我们对 android 产生浓厚的兴趣,让我们燃起探索android 的欲望,我想这样就已经足够了。

  • 兴趣可以强化执行力

    刚开始接触Android我就感觉到它很有意思,因为毕竟我们可以做出APP来嘛,可以自己设计一些简单的逻辑,也可以使用GitHub上面的开源代码,增加自己学习的兴趣。在界面开发上和web也可以形成了相通的架构,更加方便,视觉上也是非常的酷,在前期虽然我们需要通过的大量的Android SDK开发范例大全中的例子以及Android提供的APIDEMOS来学习,但是之后我们就会越来越容易的理解安卓的底层原理,为我们开发打好坚实的基础。

  • 对于接下来的课程要充满期待

    上完第一节课,我感觉到了,在这个互联网时代,想要有自己的一片天地,必须在保持技术的同时,拥有自我提升的能力,这就需要我们对于未来的知识与技术充满期待,这就可以使得自己有足够的动力来进行学习。希望我们一起面对接下来的挑战,找到自己所热爱的事业,去发展自己的能力,创造出自己的价值。

本文若有不足之处,欢迎纠正。