Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念. 先来看名词解释. 工作区(Working Directory) 就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区: 版本库(Repository) 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库. Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD. 分支和H…
小丁带你走进git的世界二-工作区暂存区分支 一.Git基本工作流程 1.初始化一个仓库 git  init git  clone git仓库分为两种情况: 第一种是在现有项目或目录下导入所有文件到 Git 中: 第二种是从一个服务器克隆一个现有的 Git 仓库 git  init  –bare  git 创建一个裸仓库 2.git仓库有三个区域 工作区working directory日常编辑代码的地方 历史仓库history repository是commit指向的一个树形结构 暂存区Sta…
工作区.暂存区.版本库.远程仓库 一.概念 1.四个工作区域 Git本地有四个工作区域:工作目录(Working Directory).暂存区(Stage/Index).资源库(Repository或Git Directory).git仓库(Remote Directory).文件在这四个区域之间的转换关系如下: Workspace: 工作区,就是你平时存放项目代码的地方 Index / Stage: 暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息 Reposit…
与一般的版本管理不同的是,git在提交之前要将更改通过git add 添加到暂存区才能提交(git commit).即使是已经交给了git来管理的文件也是如此.这里继续学习git的暂存区. 通过git checkout撤销工作区更改 在版本库.git目录下有一个index文件. 首先执行git checkout命令,撤销工作区中welcome.txt文件尚未提交的修改. 原来可以通过这种方法来撤销修改,妈呀,我还是菜啊.之前使用IDEA的时候只知道用revert. git status和git…
一.svn和Git的比较 我们都知道传统的源代码管理都是以服务器为中心的,每个开发者都直接连在中间服务器上, 本地修改,然后commit到svn服务器上.这种做法看似完美,但是有致命的缺陷. 1. 开发者不能本地跟踪代码版本. 所有的信息都是在服务器上.  你把本地的代码改了很多,但是又不能提交.通常,本地只能缓存一个版本.对于小项目无所谓, 但是项目一复杂,人员多就麻烦了. 通常你本地的代码都全是红色的.自己都不知道今天修改了什么, 有哪些修改是真正应该提交给svn的. 2. 因为第一点,一旦…
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>…
区分三者关系 Git最让你迷惑的无非是它里面的各种概念了,如果是刚开始接触Git希望看完本篇介绍之后有一个清晰的认识,笔者认识也有限这里只说说个人对使用Git的感受,说一下它里面的几个最常用的概念的理解. 在初始化git版本库之后会生成一个隐藏的文件 .git ,可以将该文件理解为git的版本库 repository,而我们自己建立的项目文件夹即工作区 working directory ,在.git 文件夹里面还有很多文件,其中有一个index 文件 就是暂存区也可以叫做 stage ,git…
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 log 查看提交日志(附加的 --stat 参数可以看到每次提交的文件变更统计). $ cd /path/to/my/workspace/demo $ git log --stat 如果想更简洁和清晰地看到提交的历史,可以使用精简输出来显示日志. $ git log --pretty=oneline 当执行 git status 命令(或者 git diff 命令)扫描工作区改动的时候,先依据 .git/index 文件中记录的(用于跟踪工作区文件的)时间戳.长度等信息判断工作区…