一、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. EasyUI动态加载panel,并给panel添加内容

    例子: 给布局内动态添加一个panel,给panel一个id,加内容的时候加到这个id里就可以了 var str=$('<div> <textarea id="contex ...

  2. 让你的网站high起来

    最初是在陌小雨的网站上看见这个功能,赶脚很牛逼的样子,于是给自己的网站加上了.在我网站首页的轮播图上面那个按钮就能实现这个功能,当然这里你点击右边的这个链接也可以看到效果——>点此嗨一下. 效果 ...

  3. springMvc(一)

    SpringMvc 1. 核心:DispatcherServlet 1.1作用:负责拦截请求并分派给相应的处理器处理 1.2配置DispatcherServlet(web.xml) 2.配置处理器映射 ...

  4. 防反编译的加壳工具-Virbox Protector

    通过Virbox Protector可快速对您的软件进行加壳,可防调试,防挂钩,防反编译. 首先,你要有一个云平台(www.sense.com.cn)的帐号,登录后,只需将你的dll或者exe拖入到加 ...

  5. BAT脚本/Dos 改ip地址

    BAT脚本/Dos 改ip 经常换地方上网,总改这些很麻烦,直接写三个bat,点一下就换了.需要管理员权限.之前用python的wmi写过,但是没起作用. ip:10.10.41.15 子网掩码:25 ...

  6. LinkedList源码解析(JDK1.8)

    package java.util; import java.util.function.Consumer; /** * LinkedList是List和Deque接口的双向链表的实现.实现了所有可选 ...

  7. 基于node写了个工具,可以在线制作“sorry,为所欲为”的 GIF(开源)

    SnailDev.GifMaker 一个生成gif并添加自定义字幕的工具 client 微信小程序 server nodejs + express 欢迎 star&fork 如果您有好的com ...

  8. UGUI中显示粒子特效

    今天在UGUI上显示粒子特效的时候遇到的一些问题,Mark一下.原理:修改特效中每一个ParticleSystem的Layer为UI,并且把ParticleSystemRenderer.sorting ...

  9. SpringMVC之处理流程

    之前在学servlet时写过JavaWeb与Asp.net工作原理比较分析,那篇主要是大致描述了下servlet的工作流程,今天在家了解了下springmvc的工作原理,与asp.net中的mvc进行 ...

  10. 从PRISM开始学WPF

    我最近打算学习WPF ,在寻找MVVM框架的时候发现了PRISM,在此之前还从一些博客上了解了其他的MVVM框架,比如浅谈WPF中的MVVM框架--MVVMFoundation 中提到的MVVMFou ...