Git 学习(三)本地仓库操作——git add & commit
Git 学习(三)本地仓库操作——git add & commit
Git 和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念。这在上文已有提及,本文具体说明什么是工作区及暂存区,以及如何使用本地git库的操作命令:重点 git add 及 git commit 。
回顾上一章节版本库创建: 先将 D:盘下的 learngit 整个文件夹删除,然后创建空的 Git 版本库。
工作区 和 版本库
工作区(Working Directory)即操作系统中看到的文件夹,如 d:/learngit ,目前工作区是空的。
工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库(Repository)。Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
回顾上一章节,我们把文件往Git版本库里添加的时候,是分两步执行的:
第一步:git add 把文件添加进去,实际上就是把文件修改添加到暂存区
第二步:git commit 提交更改,实际上就是把暂存区的所有内容提交到当前分支(创建Git版本库时,Git自动创建了master分支; 所以,目前 git commit 就是往master分支上提交更改;分支的概念之后章节会详细说明)
可简单理解为,需要提交的文件修改通通放到暂存区;然后,一次性提交暂存区的所有修改。下面具体说明 git add 及 git commit 操作 (有兴趣的可关注下 git add 和 commit 文件后 .git 目录的变化)
暂存区操作 git add
暂存区操作使用 git add 命令,git add <filename> 可以添加单个文件至暂存区,我们可在当前空的 learngit 文件夹中加入文件;此时,暂存库(stage)中会存有之前 add 的文件。
git add <file> 把单一指定文件加入至暂存区(须加后缀格式)
例如:在该文件夹中新建一空的 1.txt 文件,将该文件加入暂存区,需 git add 1.txt ; 未 add 前,git status 会提示(红框)。
若修改了该 1.txt, 由于工作区和暂存区文件不同,仍须 git add 1.txt
若新增或更改多个指定文件, 可使用空格分隔多个文件add,如: git add 1.txt 2.txt
文件名称也可使用通配符 * 等进行操作,如: git add *.txt,表示保存所有 .txt 后缀文件至暂存区 (有关文件通配符请自行google了解)
若需查阅工作区与暂存区的差异,可用 git diff
git diff 工作区与暂存区相比的差异
工作区删除了文件,若暂存区也须删除,可用 git rm <file>
git rm <file> 暂存区删除文件,可多个,空格分隔
若大批量 增、删、改文件,显然一个个添加或删除是不可取的,以下命令可快捷操作暂存区(建议练习使用,加深对以下几个命令的理解):
git add -A 暂存区与工作区保持一致(stages All)
git add . 暂存区新建文件及更改文件(stages new and modified, without deleted)
git add -u 暂存区删除文件及更改文件(stages modified and deleted, without new)
注意:git add 不支持添加空文件夹,可参考 http://www.zhihu.com/question/29811994
git commit
git commot -m "<message>" 把暂存区的所有修改提交到分支,须输入描述信息
例如:若暂存区已加入了 1.txt 文件,提交至分支(目前是 master) git commit -m "add 1.txt" ;未 commit 前,git status 会提示未提交;commit 过程会有代码显示如下。
现在版本库变成了这样,暂存区就没有任何内容了:
小结
暂存区是Git非常重要的概念,弄明白了暂存区,就弄明白了Git的很多操作到底干了什么。
Git 学习(三)本地仓库操作——git add & commit的更多相关文章
- 【Git 学习三】深入理解git reset 命令
重置命令(git reset)是Git 最常用的命令之一,也是最危险最容易误用的命令.来看看git reset命令用法. --------------------------------------- ...
- git学习--更新本地仓库单独文件
命令: git checkout origin/dev .gitignore 从远端 dev 仓库,更新本地签出分支的 .gitignore 文件
- Git学习——创建本地仓库、提交文件
创建Git仓库 新建或找一个存在的文件夹,在命令行进入该文件夹,输入命令 git init 添加文件到Git仓库 首先使用命令git add <file>,可以多次添加文件: 使用命令gi ...
- Git 学习(四)操作修改和版本穿梭
Git 学习(四)操作修改和版本穿梭 之前的章节,已介绍了本地Git库创建.暂存区增.删.改,以及提交版本库:可回顾下命令操作: git add 和 git commit. 光有之前章节的操作,Git ...
- Git学习教程一之安装Git&&&本地仓库建立
一. 安装git 1:在Windows上使用Git,可以从Git官网直接下载安装程序,(网速慢的同学请移步国内镜像),然后按默认选项一直安装即可. 2:安装完成后,在开始菜单里找到“Git”-> ...
- Git单人本地仓库操作
本地仓库是个.git隐藏文件 以下为演示Git单人本地仓库操作 1.安装git sudo apt-get install git 密码:skylark 2.查看git安装结果 git 3.创建项目 在 ...
- (超详细)使用git命令行将本地仓库代码上传到github或gitlab远程仓库
(超详细)使用git命令行将本地仓库代码上传到github或gitlab远程仓库 本地创建了一个 xcode 工程项目,现通过 命令行 将该项目上传到 github 或者 gitlab 远程仓库,具体 ...
- Git学习笔记(一)Git初识及基本操作
详细完整教程:官方文档,廖神Git教程,武sir 一.什么是Git? 定义:Git是分布式版本控制系统. 1.1什么是版本控制 我们可以回想以下,在我们上学毕业要写论文或是准备一份演讲稿的时候,都会用 ...
- git学习四:eclipse使用git提交项目
支持原创:http://blog.csdn.net/u014079773/article/details/51595127 准备工作: 目的:eclipse使用git提交本地项目,提交至远程githu ...
随机推荐
- 使用scss + react + webpack + es6实现幻灯片
写在前面: 刚学习完慕课网里的一个幻灯片案例,自己加了刚学的react,两者结合.首先让大家看看效果 点击此处 你可以先用纯js实现上面的效果:我的github上的 JS代码 或者 观看慕课提供的课程 ...
- 【原创】MySQL CPU %sys高的案例分析(二)
后面又做了补充测试,增加了每秒context switch的监控,以及SQL执行时各步骤消耗时间的监控. [测试现象一] 启用1000个并发线程的压测程序,保持压测程序持续运行,保持innodb_sp ...
- Java 中的异常处理机制
生活中的异常: 不能够完整而顺利的完成一些工作 根据不同的异常进行相应的处理,而不会就此终端我们的生活 引出: 异常处理: 方式: 1.选择结构(逻辑判断)避免 demo:if逻辑处理异常 im ...
- 1023 Have Fun with Numbers (20)(20 point(s))
problem Notice that the number 123456789 is a 9-digit number consisting exactly the numbers from 1 t ...
- 解决python2.x文件读写编码问题
转自: https://xrlin.github.io/%E8%A7%A3%E5%86%B3python2.x%E6%96%87%E4%BB%B6%E8%AF%BB%E5%86%99%E7%BC%96 ...
- python opencv3 背景分割 mog2 knn
git:https://github.com/linyi0604/Computer-Vision 使用mog2算法进行背景分割 # coding:utf-8 import cv2 # 获取摄像头对象 ...
- python opencv3 向图像里写字
git:https://github.com/linyi0604/Computer-Vision # coding:utf-8 import cv2 img = cv2.imread(".. ...
- 顺序线性表之大整数求和C++实现
顺序线性表之大整数求和 大整数求和伪代码 1.初始化进位标志 flag=0: 2.求大整数 A 和 B 的长度: int aLength = a.GetLength(); int bLength = ...
- Mysql 千万级快速查询|分页方案
1.简单的 直接查主键id SELECT id FROM tblist WHERE LIMIT 500000,10 2对于有where 条件,又想走索引用limit的,必须创建一个索引,将where ...
- Apache2.4使用require指令进行访问控制--允许或限制IP访问/通过User-Agent禁止不友好网络爬虫
从Apache2.2.X到Apache2.4.X,在配置上稍微有点不同,需要特别注意.现在记录下关于访问控制的配置. 经过苦苦搜索,终于配置成功.参考了这篇文章:http://www.cnblogs. ...