GIT入门笔记(3)- git中的一些概念和原理
一、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中的一些概念和原理的更多相关文章
- git入门笔记汇总——(廖雪峰博客git入门)
本文内容是对廖雪峰老师Git教程做的笔记,外加一些自己的学习心得,还抱着学以致用的心态来实践一番 如有显示错误 请移步本人github:git教程小结 Git学习笔记 Git简介 安装Git 创建版本 ...
- GIT入门笔记(12)- 删除文件、提交删除和恢复删除
在Git中,删除也是一个修改操作,我们实战一下, 1.先添加add一个新文件test.txt到Git并且提交commit到本地版本库: $ git add test.txt$ git commit - ...
- GIT入门笔记(10)- 多种撤销修改场景和对策
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file. 场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步, ...
- GIT入门笔记(8)-- 查看历史提交记录/根据版本号回到过去或未来
在Git中,用HEAD表示当前版本,也就是最新的提交版本, 上一个版本就是HEAD^, 上上一个版本就是HEAD^^, 往上100个版本写100个^比较容易数不过来,所以写成HEAD~100. Git ...
- GIT入门笔记(1)- Git的基本概念
一.概念和定义 1.git是什么 许多人习惯用复制整个项目目录的方式来保存不同的项目版本,或许还会改名加上备份时间以示区别.这么做唯一的好处就是简单.不过坏处也不少:有时候会混淆所在的工作目录,一旦弄 ...
- GIT入门笔记(19)GIT 小结
1.add和commit为什么Git添加文件需要add,commit一共两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件,比如:$ git add file1.txt$ g ...
- git 最新笔记,工作中的必会技能
1.状态查看: git status 可以查看工作区,暂存区的状态 untracked 在暂存区没有该文件 modified 修改过 staged 使用git add 暂存过 2.添加操作: git ...
- GIT入门笔记(7)- 修改文件并向版本库提交
1.修改文件vi readme.txt git status 发现被修改的文件列表git diff readme.txt 2.git add readme.txt git status --注意gi ...
- GIT入门笔记(5)- 创建版本库
版本库又名仓库,英文名repository,可以简单理解成一个目录, 这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻 ...
随机推荐
- Pycharm头部注释添加
1.第一步 2.第二步 搜索框输入:File and Code Templates 然后右边找到 Python Script 3.第三步 将下面内容复制到图中红框内,然后点击OK #!/usr/bin ...
- JAVA蓝桥杯黄金分割数,涉及到bigdecimal
import java.math.BigDecimal; public class test { public static void main(String[] args) { BigDecimal ...
- css样式加载顺序
css样式加载顺序: A: id选择器指定的样式 > 类选择器指定的样式 > 元素类型选择器指定的样式 B: 如果要让某个样式的优先级变高,可以使用!important来指定: .clas ...
- 简单了解C语言内嵌汇编
最近看自旋锁的实现,自选锁的循环查找锁的主要实现类似如下,该实现使用到了内嵌的汇编(摘自sanos内核,源代码有2处实现,一处使用intel汇编,是没有问题的,另一处使用内嵌汇编语法,源代码中为cmp ...
- python 对模块的应用你还得练点这些
1.有如下字符串:n = "路飞学城"(编程题) - 将字符串转换成utf-8的字符编码的字节,再将转换的字节重新转换为utf-8的字符编码的字符串 - 将字符串转换成gbk的字符 ...
- c++ --> cin和cout输入输出格式
cin和cout输入输出格式 Cout 输出 1>. bool型输出 cout << true <<" or " << false < ...
- 关于换了手机后,导致原来连的fiddler抓不到新手机上的包的解决方法
原来我们测试都是一台安卓机,一台ios机,由于机子不够,所以安卓机都是自己的手机,可以连内网,也可以连外网 但是最近这几天,不知道公司抽了什么风.把网都给限制了,只有公司的测试机,才能连内网测,结果我 ...
- C语言描述二叉树的实现及操作(链表实现)
概述 二叉树为每个节点最多有两个儿子节点(左儿子节点和右儿子节点)的树. 前序遍历:根结点 ---> 左子树 ---> 右子树. 中序遍历:左子树---> 根结点 ---&g ...
- oracle 分析函数中 keep关键字的使用
语法 min | max(column1) keep (dense_rank first | last order by column2) over (partion by column3); 另外f ...
- netstat/ps用法
1.netstat 语法 命令1:netstat -antp | grep :80(查看80端口被哪个服务占用)or netstat -antpuel | grep ":22&qu ...