Git 学习(三)本地仓库操作——git add & commit

  Git 和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念。这在上章节已有提及,这章节具体说明什么是工作区及暂存区,以及如何使用本地git库的操作命令:重点 git add 及 git commit 。

  回顾上一章节版本库创建: 先将 D:盘下的 learngit 整个文件夹删除,然后创建空的 Git 版本库。

  

  工作区(Working Directory) 和  版本库(Repository)

    工作区即操作系统中看到的文件夹,如  d:/learngit ,目前工作区是空的。

    工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。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 过程会有代码显示如下。

    

      现在版本库变成了这样,暂存区就没有任何内容了:

      commit 提交的过程还是比较好理解的,注意描述信息的必要性,虽然有办法可以省去,但不建议省。除了通用的提交,以下commit命令也较常用:

      git commot --amend                       更改之前一次commit的描述信息

      git commot -a -m "<message>"    把暂存区的所有被修改或者已删除的且已经被git管理的文档提交提交到分支,须输入描述信息(可省略 git add 过程)

      

      大多数情况下,我们所做的都是在原有代码上修改,故上述命令在实际操作过程中很实用(可省略 git add)

      

小结

暂存区是Git非常重要的概念,弄明白了暂存区,就弄明白了Git的很多操作到底干了什么。

时间: 2024-11-03 09:42:14

Git 学习(三)本地仓库操作——git add & commit的相关文章

Git学习——创建本地仓库、提交文件

创建Git仓库 新建或找一个存在的文件夹,在命令行进入该文件夹,输入命令 git init 添加文件到Git仓库 首先使用命令git add <file>,可以多次添加文件: 使用命令git commit -m <message>,提交添加的文件(message是提交的记录信息) 原文地址:https://www.cnblogs.com/cjvae/p/9164017.html

git之idea本地仓库操作

1.查看idea的git配置 默认是git的默认安装地址,如果git不是默认安装,请自己选择 2.创建一个git仓库   然后空座空间会有git的快捷按钮, 3.提交 点击对号commit 选择需要上传的项目文件,然后commit 4.再次提交 绿色是差异部分  然后commit提交 5.查看版本差异 原文地址:https://www.cnblogs.com/raitorei/p/12115197.html

【git学习三】git基础之git管理远程仓库

1.背景 git管理远程仓库,本文以github为例. 2.管理远程仓库 1.本地ssh认证,在github建立一个repo叫做ospaf-GetWordFre 2.添加远程仓库,可以用git remote 命令实现,o是仓库名,可以用git remote -v查看 git remote add o git://github.com/jimenbian/ospaf-GetWordFre.git 3.接着就可以向github上fetch或是push代码了.注意要选择分支 /************

Git学习笔记(一) --- --- git的安装及本地仓库的创建,github上仓库的连接方式

首先了解git的作用是什么,本地仓库,中央仓库都是干什么的? Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上.实际情况往往是这样,找一台电脑充当服务器的角色,每天24小时开机,其他每个人都从这个"服务器"仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交. 一. git的下载与安装: 1. 下载地址:https://www.git-scm.com/download/win 2. 安装,注意改一下安装路径并且牢记你装在

Git 学习笔记&lt;远程仓库与标签管理&gt; (四)

什么是远程仓库? 就像第一章介绍的那样,远程仓库可以储存你编写的所有源码和资源文件. 甚至也可以当网盘使,不过当然有很多契合git管理文本的特性. 下面就要以 github 为示例远程仓库进行介绍.  (也可以自己弄一台服务器作远程仓库). 创建仓库 在主页找到 +New repository 或者右上角的加号里有.输入名字 描述 然后没钱只能public就能确定了.然后呢,点名字打开你的仓库.(主页右下角可以找到) 关于与远程仓库的连接 首先你打开你的保险箱得先证明身份吧,不然我怎么知道你是客

Git学习笔记(2)-Eclipse中Git插件使用

目前我使用的Eclipse luna版本中已经集成了git插件,这里就不介绍如何安装Git插件了,不懂可以看其他的博客. 上篇笔记介绍了Git的基本指令,实际开发中我基本都使用eclipse插件进行代码提交和更新,下面就介绍下Eclipse中如何使用Git插件. 首先看一张Git管理代码原理图: 从这张图中可知道Git管理代码涉及到4个地方, Remote:远程仓库,或者叫远程分支,一个项目由多个人开发时,远程仓库就是中央代码库. Repository:本地仓库,顾名思义就是安装在本地的代码库,

git学习——&lt;三&gt;git操作

一.创建仓库 创建一个目录 mkdir repository cd到该目录下,初始化该版本库 git init 至此,版本库创建成功,可以在该文件夹下看到.git文件夹,ls -ah可以看到该文件夹. 二.版本管理 1.将文件或文件夹添加到版本库中进行版本控制 在工作区创建一个文件 touch readme.txt 将该文件添加到暂存区 git add readme.txt 将文件从暂存区提交到版本库 git commit -m "some comment" *工作区.暂存区.版本库

Git 本地仓库操作基本命令

1. 首先要配置用户信息配置(全局配置) $ git config --global user.name leo $ git config --global user.email [email protected] 2. 进入项目所在目录,git 初始化 ## 会在当前目录下创建隐藏的 .git 目录,用于 git 跟踪版本管理 $ git init 3. 将修改过的文件由工作区添加到暂存区(每次修改须重新添加) ## 添加单个文件 $ git add some.php ## 添加所有文件  

git学习(三)——git的分支操作

git的分支操作 软件项目中启动一套单独的开发线的方法,可以很好的避免版本兼容开发的问题,避免不同版本之间的相互影响,封装一个开发阶段,解决bug的时候新建分支,用于对该bug的研究: git中跟分支相关的命令 git branch git branch 分支名 创建分支 git branch 不加任何参数,列出所有的分支,分支前面有*号,代表该分支为当前所在分支 * 创建分支的时候,分支名不用使用特殊符号 git branch -d 分支名 *不能删除当前所在的分支 删除分支,如果在分支中有一