小丁带你走进git的世界二-工作区暂存区分支 一.Git基本工作流程 1.初始化一个仓库 git  init git  clone git仓库分为两种情况: 第一种是在现有项目或目录下导入所有文件到 Git 中: 第二种是从一个服务器克隆一个现有的 Git 仓库 git  init  –bare  git 创建一个裸仓库 2.git仓库有三个区域 工作区working directory日常编辑代码的地方 历史仓库history repository是commit指向的一个树形结构 暂存区Sta…
分布式集中式 CVS及SVN都是集中式的版本控制系统 , 而Git是分布式版本控制系统 集中式版本控制系统,版本库是集中存放在中央服务器的, 而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活, 干完活了,再把自己的活推送给中央服务器. 中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆. 分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库, 这样,你工作的时候,就不需要联网了,因为版…
1显示暂存区中的目录树 git ls-files git ls-tree git diff 魔法 1工作区与暂存区比较 git diff 2工作区与HEAD比较 git diff HEAD 3暂存区与HEAD比较 git diff --cached git diff --cached HEAD…
参考博客:https://blog.csdn.net/qq_27825451/article/details/69396866…
git reset HEAD filename 如:git reset HEAD test.txt 或者使用 git reset .  撤回所有文件(注意后面还有个.)…
工作区.暂存区.版本库.远程仓库 一.概念 1.四个工作区域 Git本地有四个工作区域:工作目录(Working Directory).暂存区(Stage/Index).资源库(Repository或Git Directory).git仓库(Remote Directory).文件在这四个区域之间的转换关系如下: Workspace: 工作区,就是你平时存放项目代码的地方 Index / Stage: 暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息 Reposit…
1st,工作区回退:2st,暂存区回退:3rd,删除文件:…
工作区和暂存区 984次阅读 Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念. 先来看名词解释. 工作区(Working Directory) 就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区: 版本库(Repository) 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库. Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的…
1 工作区修改添加到暂存区 git add 2 暂存区提交到版本库 git commit 3 版本库更新到暂存区 git reset HEAD 4 删除暂存区文件 git rm --cached<file> 5 暂存区替换掉工作区 git checkout . git checkout --<file> 6 版本库替换掉暂存区和工作区 git checkout HEAD . git checkout HEAD <file>…
转载整理自:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013743256916071d599b3aed534aaab22a0db6c4e07fd0000 0.写在前面 其实,我们每次执行可以改变暂存区或分支的git命令时,只要这个命令操作的文件的内容的散列值还没有在.git/objects目录下作为一个文件的文件名,这个文件就会被添加到.git/objects下,文件名…
0 基础     我们知道Git有三大区(工作区.暂存区.版本库)以及几个状态(untracked.unstaged.uncommited),下面只是简述下Git的大概工作流程,详细的可以参见本博客的其他有关Git的文章[链接].  (1)打开你的项目文件夹,除了隐藏的.git文件夹,其他项目文件位于的地方便是工作区,工作区的文件需要添加到Git的暂存区(git add),随后再提交到Git的版本库(git commit). (2)首次新建的文件都是untracked状态(未跟踪),此时需要gi…
基本概念 我们等来理解下Git工作区.暂存区和版本库概念 工作区:就是你在电脑里能看到的目录 强烈推荐git新手阅读 暂存区:英文叫stage,或index.一般存放在igt 目录下的index文件(.git/index)中,所以我们把暂存区时也叫作索引(index). 版本库:工作区有一个隐藏目录.git 这个不算工作区,而是Git的版本库. 下面这个图展示了工作区.版本库中的暂存区和版本之间的关系: 图中左侧为工作区,右侧为版本库.在版本库中标记为"index"的区域就是暂存区(s…
工作区和暂存区 工作区(Working Directory) 就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区: 版本库(Repository) 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库. Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD. 前面讲了我们把文件往Git版本库里添加的时候,是分两步执行的: 第一步是用gi…
版本库 在工作区目录中有一个.git文件,这个其实不是工作区而是Git的版本库 版本库中包含两个部分,一个是暂存区index/stage,另一个是git自动为我们创建的第一个分支master,以及一个指向master分支的指针HEAD 我们将文件添加到版本库是分两部分执行的 第一步:git add 将文件添加到暂存区 第二步:git commit 将暂存区所有的内容一次性提交到当前分支 可以理解为我们将需要提交的文件修改全部放到暂存区,然后一次性提交暂存区的所有修改 git add 执行git…
1 直接删除文件 这个文件会有两个操作:已暂存的修改.未暂存的删除 2 直接删除文件 + 记录删除操作 先在工作目录中删除文件,再使用git rm命令记录此次移除文件的操作(删除暂存区中该文件的修改快照,并替换为删除快照). 3 取消暂存 + 删除文件 + 添加暂存…
前言 Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念. 版本库 在工作区目录中有一个.git文件,这个其实不是工作区而是Git的版本库 版本库中包含两个部分,一个是暂存区index/stage,另一个是git自动为我们创建的第一个分支master,以及一个指向master分支的指针HEAD 我们将文件添加到版本库是分两部分执行的 第一步:git add 将文件添加到暂存区 第二步:git commit 将暂存区所有的内容一次性提交到当前分支 因为我们创建Git版本库时,Git自…
比较暂存区和HEAD所含文件的差异? 操作场景如下: 修改readme.md 文档 vi readme.md 加入到暂存区域 git add readme.md 使用git diff -cached 做比较 比较工作区和暂存区所含文件的差异? 操作场景如下: 修改readme.md 文档 vi readme.md 加入到暂存区域 git add readme.md 使用git diff 做比较 让暂存区恢复成和HEAD的一样? git reset HEAD 暂存区覆盖工作区(将工作区的修改抹掉)…
目录 备注: 知识点 工作区(Working Directory) 版本库(Repository) 备注: 本文参考于廖雪峰老师的博客Git教程.依照其博客进行学习和记录,感谢其无私分享,也欢迎各位查看原文. 知识点 版本控制的内容修改提交的流程是:工作区>暂存区>分支 工作区(Working Directory) 工作区就是git仓库所在的目录,比如之前新建的gitTest目录就是一个工作区. 版本库(Repository) 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库…
一.工作区和暂存区 工作区(Working Directory) 就是在你的电脑里能看到的目录 版本库(Repository) 工作区中的一个隐藏目录.git,这个不算工作区,而是Git版本库.Git版本库里存了很多东西,其中最重要的就是成为Stage(或者index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的指针HEAD. 把文件往Git版本库里添加的时候,分两步执行: 第一步是用git add把文件添加进去,实际上就是把文件添加到暂存区: 第二部是用g…
1 git log 命令查看提交日志信息 git log --pretty-fuller #详细查看 git log --stat #查看每次提交的文件变更 git log --pretty-online 2git diff 对比文件的修改信息 git diff HEAD  git add . 后与当前版本库的头指针比较 git diff --cached 或--staged 提交暂存区和版本库中的文件差异 git 命令是如何影响工作区和暂存区的 左侧为工作区 右侧为版本库 . 版本库中标记为i…
关于Git暂存区的理解      暂存区可以说是Git的三大重要的区域之一,另外两个分别是工作目录和Git仓库,所以说对暂存区的深入理解可以帮助我们理解很多Git命令背后隐藏的工作原理.今天,本文将以一名初学者的角度详细讲解Git暂存区,涉及到的Git命令也会作简单的介绍但不会深入.     在这里,我们先抛出Git暂存区的概念和相关理解,后面会一一说明.     (1)所谓的暂存区只是一个简单的索引文件而已.     (2)暂存区这个索引文件里面包含的是文件的目录树,像一个虚拟的工作区,在这个…
在上一节中我们的demo版本库经历了一次提交,我们可以使用git og --stat查看一下提交日志. [root@git demo]# git log --statcommit 986a1bd458ef762ddb4e4622023e8b7d4044a665Author: Gao Yue <dgy@89mc.com>Date: Fri Aug 25 11:55:06 2017 +0800 initwelcome welcome.txt | 1 +1 files changed, 1 inse…
============================= 修改文件后是否可以直接提交 ============================ (1) 向文件中追加一行内容  $ echo "Nice to meet yuu." >> 1.txt (2) 查看修改前后文件的差异  $ git diff (3) 将修改后的文件添加到提交任务中  $ git add 1.txt (4) 查看提交暂存区和版本库文件中的差异  $ git diff --cached  $ git…
一.svn和Git的比较 我们都知道传统的源代码管理都是以服务器为中心的,每个开发者都直接连在中间服务器上, 本地修改,然后commit到svn服务器上.这种做法看似完美,但是有致命的缺陷. 1. 开发者不能本地跟踪代码版本. 所有的信息都是在服务器上.  你把本地的代码改了很多,但是又不能提交.通常,本地只能缓存一个版本.对于小项目无所谓, 但是项目一复杂,人员多就麻烦了. 通常你本地的代码都全是红色的.自己都不知道今天修改了什么, 有哪些修改是真正应该提交给svn的. 2. 因为第一点,一旦…
Git中的暂存区成为stage或者是index.可以理解成一个"提交任务".Git暂存区是Git最成功的设计之一,但是也是最难理解的. 暂存区是一个介于工作区和版本库的中间状态.当执行提交的时候,实际上是将暂存区的内容提交到版本库中. 而且Git的很多命令都会涉及暂存区的概念.例如 git diff命令. (什么是HEAD,什么是master,为什么他们两者可以相互替换使用,为什么Git中的很多对象(如提交树,文件内容等)都用40位的SHA1哈希值来表示?) 在版本库中 .git 目录…
例如以下图所看到的: 左側为工作区,是我们的工作文件夹. 右側为版本号库,当中: index标记的是暂存区(stage),所处文件夹为.git/index,记录了文件的状态和变更信息. master标记的是master分支所代表的文件夹树.HEAD指向master分支. objects标记的是Git的对象库,所处文件夹为.git/objects.文件索引建立了文件和对象库中对象实体之间的映射关系. 通过该图我们能够清晰地看出add,commit等命令的转化关系.以下通过git diff和git…
一.简介 git ls-files 命令是用来查看暂存区中文件信息 二.常用参数 参数说明(括号里是简写) --cached(-c)显示暂存区中的文件,git ls-files命令默认的参数 --deleted(-d)显示删除的文件 --modified(-m) 显示修改过的文件 --other(-o)显示没有被git跟踪的文件 --stage(-s) 显示mode以及文件对应的Blob对象,进而我们可以获取暂存区中对应文件里面的内容. 二.实例 1.如何查看暂存区中有哪些文件? git ls-…
1. 暂存区 每个 Git 仓库中,都有一个隐藏目录 .git 用于存放 Git 仓库的相关信息,包括暂存区(称为 stage).自动创建的 master 分支以及指向 master 分支的 HEAD 指针. 每次提交文件时: git add 添加文件到暂存区. git commit 提交更改,把暂存区的所有内容一次性全部提交到当前分支,清空暂存区. 2. 撤销修改 因为暂存区的存在,撤销修改分为几种情况(通过 git status 查看仓库状态时会提示相关撤销修改的命令): 修改后,文件没有放…
平时在开发时候 一般线上环境和线下环境区别会很大,所以一下线下的自己测试环境的代码没有如果提交会影响线上环境,所以一般都会使用git的一个暂存区作为临时存放不需要提交的代码,这样每次提交代码都可以在不影响自己环境和线上环境 1.git暂存区的使用方法:这是我的VersionControl 修改的文件.现在我需要将App.java代码补提交放到暂存区 2.右击选择App.java 选择 shelve changes 翻译的意思就是 搁置变化 意思是将 已经修改的代码搁置一边补提交,也就是相当于gi…