[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 ------------------------------------------------------- ...
随机推荐
- qt console 控制台程序 与win console控制台程序是不同的
#include <QtCore/QCoreApplication> int main(int argc, char *argv[]){ QCoreApplication a(argc, ...
- bzoj2600 [Ioi2011]ricehub 双指针
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=2600 题解 随便写一个比较简单的 two pointers 练习题. 首先答案肯定是一个原序列 ...
- Tymeleaf模板引擎背景图片路径书写方式
<body style="background: url(../static/assets/img/bg-so-white.png);" th:style="'ba ...
- 包、time、datetime、hashlib和hmac、request、re
目录 包 包的特点 time模块 datetime模块 hashlib模块和hmac模块 hmac密钥(加盐) typing模块 request模块 正则模块 以下必须得记住 哪些做了解 包 包,这里 ...
- Ldap 从入门到放弃(二)
OpenLDAP 服务器安装与配置 本文内容是自己通过官网文档.网络和相关书籍学习和理解并整理成文档,其中有错误或者疑问请在文章下方留言. 一.概述 本文以Centos 6.8(64bit)为例介绍 ...
- 对npm的认识
npm由三个不同的组件组成:1,网站 2.命令行界面(CLI)3.注册表 需要在网站注册 命令行界面用来进行交互 注册表来进行保存 安装本地软件包 npm install 包名 更新本地软件包 npm ...
- 【Python】selenium模拟淘宝登录
# -*- coding: utf-8 -*- from selenium import webdriver from selenium.webdriver.common.by import By f ...
- scanf()函数原理
一.三点说明 1.用户输入的字符,会以ASCII码形式存储在键盘缓冲区:2.每调用一次scanf函数,就从键盘缓冲区读走一个字符,相当于清除缓冲区:3.若用户一次输入n个字符,则前n次调用scanf函 ...
- [CSP-S模拟测试]:e(树上主席树)
题目传送门(内部题66) 输入格式 第一行,一个正整数$n$,一个自然数$q$,一个整数$type$.第二行,$n$个正整数,代表$a_i$.接下来$n-1$行,每行两个正整数$u$.$v$,代表树中 ...
- 深入理解BFC和IFC
1. 为什么会有BFC和IFC 首先要先了解两个概念:Box和formatting context: Box:CSS渲染的时候是以Box作为渲染的基本单位.Box的类型由元素的类型和display属性 ...