一、git管理过程中所处的4个阶段:

  • 工作目录(workspace)
  • 暂存区(index)
  • 本地仓库(local repository)
  • 远程仓库(remote repository)

二、工作目录+暂存区+本地仓库的工作原理:  

   

三、工作目录+暂存区+本地仓库+远程仓库的工作原理:

四、git工作流程:

1、如何让Git管理你的文件

做为一个资源管理和跟踪系统,
     如果想要把自己的文件托管在Git上,那么首先你得让Git知道你需要管理的文件在哪。
     比如说现在我有一个项目,它在test文件夹里,我想让Git管理这个项目,
     这个时候你需进入到这个目录,然后运行“git init”命令。
     这个时候Git就会在该目录下生成一个.git的隐藏目录,Git用来进行版本控制和内容跟踪的所有文件都在该文件夹下。

处于git跟踪下的文件只具有三种状态:
         Modified(working directory):被修改过的文件
         Staged(staging area):通过git add添加到暂存区域的文件
         Committed(git directory):通过git commit提交到仓库的文件

2、一般的git工作流程可能是这样:

a、增加/修改/删除某些文件
     b、然后把这些文件添加都暂缓区  -----git add/ git rm
     c、再提交到仓库中形成一个版本或快照  ------ git commit
     d、最后提交到git服务器上   -----    git push
     而在中间,可能伴随着分支管理,分支切换,撤消与合并。

3、可能有些人会觉得很奇怪,为什么git会有暂存区域这个概念,直接提交到仓库中不就ok了。

其实这是git为了做版本控制用的,
     试想如果没有暂存区域,每修改一个文件,就会形成一个版本,
     太过频繁,不易于管理。

暂存区域其实就是下一个版本的文件清单,
     你可以自由控制该往仓库中提交什么文件,
     这也可以避免在一个版本中包含一些中间文件。

4、项目开发过程

文件的状态变化

文件的提交和恢复

GIT入门笔记(3)- git中的一些概念和原理的更多相关文章

  1. git入门笔记汇总——(廖雪峰博客git入门)

    本文内容是对廖雪峰老师Git教程做的笔记,外加一些自己的学习心得,还抱着学以致用的心态来实践一番 如有显示错误 请移步本人github:git教程小结 Git学习笔记 Git简介 安装Git 创建版本 ...

  2. GIT入门笔记(12)- 删除文件、提交删除和恢复删除

    在Git中,删除也是一个修改操作,我们实战一下, 1.先添加add一个新文件test.txt到Git并且提交commit到本地版本库: $ git add test.txt$ git commit - ...

  3. GIT入门笔记(10)- 多种撤销修改场景和对策

    场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file. 场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步, ...

  4. GIT入门笔记(8)-- 查看历史提交记录/根据版本号回到过去或未来

    在Git中,用HEAD表示当前版本,也就是最新的提交版本, 上一个版本就是HEAD^, 上上一个版本就是HEAD^^, 往上100个版本写100个^比较容易数不过来,所以写成HEAD~100. Git ...

  5. GIT入门笔记(1)- Git的基本概念

    一.概念和定义 1.git是什么 许多人习惯用复制整个项目目录的方式来保存不同的项目版本,或许还会改名加上备份时间以示区别.这么做唯一的好处就是简单.不过坏处也不少:有时候会混淆所在的工作目录,一旦弄 ...

  6. GIT入门笔记(19)GIT 小结

    1.add和commit为什么Git添加文件需要add,commit一共两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件,比如:$ git add file1.txt$ g ...

  7. git 最新笔记,工作中的必会技能

    1.状态查看: git status 可以查看工作区,暂存区的状态 untracked 在暂存区没有该文件 modified 修改过 staged 使用git add 暂存过 2.添加操作: git ...

  8. GIT入门笔记(7)- 修改文件并向版本库提交

    1.修改文件vi readme.txt git status 发现被修改的文件列表git diff readme.txt 2.git add readme.txt git status  --注意gi ...

  9. GIT入门笔记(5)- 创建版本库

    版本库又名仓库,英文名repository,可以简单理解成一个目录, 这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻 ...

随机推荐

  1. 使用Python解析豆瓣上Json格式数据

    现在的API接口多为xml或json,json解析更简洁相对xml来说 以豆瓣的API接口为例,解析返回的json数据: https://api.douban.com/v2/book/1220562 ...

  2. Java单例模式的5种实现方式

    1.饿汉式.不支持并发: package com.ou; //饿汉式 public class Singleton1 { private Singleton1() { } private static ...

  3. Intellij IDEA debug模式下项目启动慢/无法启动的事件解决过程记录

    项目无法启动了 简单的介绍一下事件过程:周一的早上,收到前端同事抛过来的一个任务,说是一个接口无法正常返回数据,于是就让他把参数发过来,我想试着在本地重现一下并且将问题修复掉,这种情况肯定是要通过de ...

  4. mySQL语法中的存储过程及if语句的使用简例

    create procedure gh() #注意各个地方的分号!此代码应先运行除掉最后一句的部分,然后运行call gh显示已经存储的结果 BEGIN declare c_no int; #声明数据 ...

  5. 使用git指令下载github仓库代码(笔记)

    通过Git指令下载源码 Git概念说明 ​ 三种状态:修改状态.暂存状态和Git仓库 ​ 基本的Git工作流程: ​ 在工作目录中修改文件 ​ 暂存文件,将文件的快照放入暂存区域 ​ 提交更新,找到暂 ...

  6. 20165230 学习基础和C语言基础调查

    20165230 学习基础和C语言基础调查 技能学习经验 我擅长弹钢琴.小时候我曾上过很多兴趣班,比如钢琴.跳舞.书法.绘画等等,唯一坚持至今的只有钢琴.仔细一算学习钢琴至今已有12年,不能说已经精通 ...

  7. 桶排序/基数排序(Radix Sort)

    说基数排序之前,我们先说桶排序: 基本思想:是将阵列分到有限数量的桶子里.每个桶子再个别排序(有可能再使用别的排序算法或是以递回方式继续使用桶排序进行排序).桶排序是鸽巢排序的一种归纳结果.当要被排序 ...

  8. 【Django】 视图层说明

    [Django视图层] 视图层的主要工作是衔接HTTP请求,Python程序和HTML模板,使他们能够有机互相合作从模型层lou到数据并且反馈.说到视图层的工作就有以下几个方面要说 ■ URL映射 对 ...

  9. 【JS】 Javascript 入门

    javascript **********本章大量示例和内容引用自w3cschool的javascript教程************** 本来已经快写完90%左右了,结果不小心跑了个js,不小心把浏 ...

  10. Spring MVC的handlermapping之RequestMappingHandlerMapping初始化

    RequestMappingHandlerMapping:这个handlerMapping是基于注解的同样,先上类图: 通过类图可以看到,同样是继承父类 AbstractHandlerMapping来 ...