Git & GitHub | 青训营
这是我参与「第四届青训营 」笔记创作活动的的第1天
一、本堂课重点内容:
-
开发和交付--对内与对外
-
Android 知识图谱
-
认识 Android 系统
-
认识一些基础工具--git
二、详细知识点介绍:
对外 - 为用户创造价值
-
第一层交付:页面+逻辑+数据
-
第二层交付:多样性需求
-
第三层交付:体验+质量+安全+个性化
对于一个客户端开发来讲,我们面对的角色主要包括:
- 对外(用户):为用户创造价值,是最终的目的和宗旨,也是整个系统存在的前提
- 对内(公司):上面第二个图对应的是更详细的内部交付涉及的团队,实际上比这要复杂的多。这些团队组成了公司这个实体。
- 自身(个人):我们通过自身的努力来推进交付流程,提供给用户好用的产品。同时个人也是一个产品,我们需要打造自身的技术品牌,培养自己的技术实力。
本篇文章主要总结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 clone、git pull、git add 、git commit、git checkout、git 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来学习,但是之后我们就会越来越容易的理解安卓的底层原理,为我们开发打好坚实的基础。
-
对于接下来的课程要充满期待
上完第一节课,我感觉到了,在这个互联网时代,想要有自己的一片天地,必须在保持技术的同时,拥有自我提升的能力,这就需要我们对于未来的知识与技术充满期待,这就可以使得自己有足够的动力来进行学习。希望我们一起面对接下来的挑战,找到自己所热爱的事业,去发展自己的能力,创造出自己的价值。