[Git] 007 三棵树以及向本地仓库加入第一个文件
1. “三棵树”
1.1 前言
- 理论上要稍稍复杂一点
- 我在这里说得简化一点
- 顺道挖个坑
- 下回具体介绍
- 坑号编码:Git07-1
1.2 看图

1.3 简介
- 树左:工作区(平时写代码的地方)
- 树中:暂存区(临时存档;类似图书馆暂存物品的柜子)
- 树右;仓库(存放所有数据的地方;HEAD 的指向为当前版本)
2. 向本地仓库加入文件
2.1 准备
- 切至目标仓库路径
- 新建一个文件(比如,我新建一个 "README.md")

- 此时的 "README.md" 在工作区
2.2 查看状态
- 使用
git status

- 上图大致意思是说
- 当前分支为 "master" 分支
- 目前还没进行过 "commit"
- "README.md" 未被“追踪”(注意,此时的 "README.md" 是红色的)
- 建议使用
git add <file>来提交内容

- 此操作没有回馈(没有消息就是最好的消息)
2.4 继续查看

- 上图大致意思是说
- 当前分支为 "master" 分支
- 目前还没进行过 "commit"
- README.md 可以被“提交”,(注意,此时的 "README.md" 是绿色的)
- 提示
- 命令:
git rm --cached <file> - 作用:将刚刚 "add" 进 "stage" 的文件(改变)“踢出去”
- 命令:
2.5 使用上方提示的命令
- 命令:
git rm --cached README.md

分析
- 工作区的 "README.md" 还在,并且没有改变
- 暂存区刚刚 "add" 进去的 "README.md" 被删除了
- "--cached" 在 [Git] 009 逆转未来 的 "3.2" 还会提到
2.6 恢复
- 重复 "2.3" 的操作
2.7 将文件加入本地仓库
命令:
git commit画面跳转

- 加入解释说明,保存退出(使用 "vi / vim" 的方法)

- 画面跳回

- 上图第 5 行的 "100644"
- "100" 指常规文件
- "644" 指文件权限,详情可见 [Linux] 010 权限管理命令 chmod 的 "chmod" 部分
2.8 最后再查看一下

[Git] 007 三棵树以及向本地仓库加入第一个文件的更多相关文章
- Git创建一个自己的本地仓库
如果我们要把一个项目加入到Git的版本管理中,可以在项目所在的目录用git init命令建立一个空的本地仓库,然后再用git add命令把它们都加入到Git本地仓库的暂存区(stage or inde ...
- [原]git的使用(一)---建立本地仓库、add和commit、status和git diff、版本回退使用git reset
在window下已经安装了git的环境 1.建立本地仓库 mkdir test #建立test目录 cd test #进入目录 git init # ...
- Git 学习(三)本地仓库操作——git add & commit
Git 学习(三)本地仓库操作——git add & commit Git 和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念.这在上文已有提及,本文具体说明什么是工作区及暂存区,以及 ...
- Git学习-安装与创建本地仓库
前言 以前公司进行项目的版本管理都是用svn,最近公司推荐用git,把svn给关闭了.没办法,拿来主义.网上一番猛操作,勉强也能用了,给自己做个笔记. git安装 因为我用的是windos系统,在Wi ...
- 1、git基础介绍及远程/本地仓库、分支
1. Git基础介绍 基于Git进行开发时,首先需要将远程仓库代码clone到本地,即为本地仓库.后续大部分时间都是基于本地仓库上的分支进行编码,最后将本地仓库的代码合入远程仓库. 1.1. 远程仓库 ...
- Git详细教程之创建本地仓库和连接Github仓库
首先要知道不只有代码,任何类型的文件都可以进行版本控制,版本控制很重要的一个特性就是你可以随时修改,比如git会记录你的任何操作,如果你想要回退到任何一个历史操作,你可以通过git轻松达到. 本地仓库 ...
- Git的基本使用 -- 创建本地仓库
下载安装 Git-2.25.0-64-bit .exe 查看是否安装成功 git --version 创建本地仓库 创建一个文件夹用于存放项目文件 在创建好的文件中右键选择 Git Bash Here ...
- 使用Git GUI工具 上传本地仓库到 gitee码云仓库
前言: 网上关于git的命令操作与使用很多教程和博客,在使用git工具时我发现有一个 git Gui 可视化工具,我觉得十分的亲切,由于我之前一直是使用svn作为版本控制管理工具,都是可视化操作,使用 ...
- 删除本地仓库中的lastUpdated文件.bat
@echo off @ ECHO. @ ECHO. @ ECHO. 说 明 @ ECHO ------------------------------------------------------- ...
随机推荐
- grep 文本过滤
1.命令功能 grep, egrep, fgrep - print lines matching a pattern 根据匹配模式空间(正则表达式)打印结果行. 2.语法格式 grep [opti ...
- fs.mkdir
fs.mkdir(path[, mode], callback) 要求父目录必须存在 let fs = require('fs'); fs.mkdir('./c/b/a', res=>{ // ...
- lambda匿名函数sorted排序函数filter过滤函数map映射函数
lambda函数:表示匿名函数,不需要def来声明,一句话就能搞定. 语法:函数名=lamda 参数:返回值 求10的10次方 f=lambda n:n**n print(f(10)) 注意: 函数名 ...
- python-类对象的比较
#类对象的比较 class Person: def __init__(self,age,height): self.age=age self.height=height def __eq__(self ...
- 缓存算法LRU笔记
LRU原理与分析 LRU是Least Recently Used 的缩写,翻译过来就是“最近最少使用”,也就是说,LRU缓存把最近最少使用的数据移除,让给最新读取的数据.而往往最常读取的,也是读取 ...
- Ansible环境搭建
Installation Guide(Ansible官网链接) Basics / What Will Be Installed What Version To Pick? Control Machin ...
- PHP文件的上传和下载
1.使用PHP的创始人 Rasmus Lerdorf 写的APC扩展模块来实现(http://pecl.php.net/package/apc) APC实现方法: 安装APC,参照官方文档安装,可以使 ...
- CG-CTF | MD5
渣渣今天写了一题misc,第一次学习md5的python写法,赶紧记录一波 背景知识: import hashlib md51=hashlib.md5() md52=hashlib.md5() # [ ...
- centos 6.x 安装配置 node.js 环境
下载 可以在本地下载node.js最新版,然后通过ftp工具上传到服务器,或者直接在服务器终端使用wget命令下载(我当时下载的是node-v6.11.3-linux-x64版本,其他版本请查看上面链 ...
- 【转】gl_NormalMatrix
关于为什么对法线变换时要使用变换矩阵的转置的逆,而不能像变换顶点那样直接使用变换矩阵 https://www.cnblogs.com/bigdudu/articles/4191042.html 注意文 ...