git工作区

git的工作区就是电脑中能看到的目录,比如我的learning文件夹就是一个工作区

版本库暂存区

工作去有一个隐藏的目录.git,这个不算工作区,而是git的版本库
git的版本库中存了很多东西,其中最重要的就是stage(或是index)的暂存区,还有git为我们自动创建的第一个分支master,以及指向master的一个指针叫head

我们把文件向git版本库里添加的时候,分为两步:
用git add 把文件添加进行实际上就是把文件修改添加到暂存区
用git commit提交更改,实际上就是把暂存区的内容提交到当前分支,我们创建git版本库时候,git自动为我们创建唯一一个master分支,所以现在,git commit就会想master分支提交更改。
如我们修改了readme.txt和新添加了license,使用git status 命令就会提示我们修改了readme文件,license新添加的文件会提示Untracked的状态,使用git add 添加到暂存区

使用 git commit提交到master版本库

最后,通过git push推送到远程仓库

git管理修改

git跟踪并管理的是修改,而非文件。
例如:第一次修改->git add -> 第二次修改 ->git commit
在用git add命令后,在工作去第一次修改被放入暂存区,但是在工作区的第二次修改并没有放入暂存区,所以git commit只负责把暂存区的修改修改提交了,也就是第一次的修改被提交了,第二次的修改不会被提交。(原因:git管理的是修改)
如果需要提交第二次修改,应该如何做呢?
> 可以继续git add再git commit
> 别着急提交第一次修改,先git add第二次修改,在git commit,就相当于把两次修改合并后在一块提交了。
> 第一次修改->-git add>第二次修改->git add->git commit

git撤销修改

工作文件修改错误,需要撤销,命令git checkout -- 就派上用场
命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,有两种情况
readme.txt修改后没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态
readme.txt已经添加到暂存区,又作了修改,现在撤销修改就回到添加到暂存区后的状态
总之,就是让这个文件回到最近一次git commit或git add时的状态
如果文件已经修改并git add添加到暂存区,在git commit之前,需要撤销修改,使用命令 git reset head file.
命令 git reset head file 可以把暂存区的修改撤销掉,重新放回工作区。 (场景1)如果改乱了工作区的某个文件的内容,想直接丢弃工作去的修改的时候,使用命令 git checkout --file
(场景2)不然改乱了工作去并且添加到暂存区的时候,想直接丢弃,分为两步 第一 使用命令 git reset Head file ,回到"场景1",第二部按场景1操作。
(场景3)如果已经提交了不合适的修改到版本库,想撤销本次提交,使用"版本回退" 前提是没有推送到远程库。
ps注意:
使用的git checkout --file 命令,命令中的"--"很重要,没有"--"就变成了切换到另外一个分支的命令。

git删除文件

文件从工作区删除,工作区和版本库就不一致了,通过git status就可发现那些文件被删除。
如果确实需要从版本库中删除该文件,就用命令 git rm删掉,并且 git commit;
如果删除错了,因为版本库中还有该文件,使用 git checkout -- xx.file 还原该文件。 命令:git checkout是用版本库中的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

git 工作区管理的更多相关文章

  1. git工作区、暂存区、版本库之间的关系

    区分三者关系 Git最让你迷惑的无非是它里面的各种概念了,如果是刚开始接触Git希望看完本篇介绍之后有一个清晰的认识,笔者认识也有限这里只说说个人对使用Git的感受,说一下它里面的几个最常用的概念的理 ...

  2. 好代码是管出来的——使用Git来管理源代码

    软件开发过程中一个重要的产出就是代码,软件的编码过程一般是由一个团队共同完成,它是一个并行活动,为了保证代码在多人开发中能够顺利完成,我们需要使用代码版本控制工具来对代码进行统一存储,并追踪每一份代码 ...

  3. 02: git分支管理

    目录:GIT其他篇 01: git & github 02: git分支管理 目录: 1.1 Git常用命令 1.2 主要分支(保护分支) 1.3 特性分支:feature (开发分支合并到d ...

  4. Git 版本控制管理(二)

    Git 分支管理 1. 概念 我们来抽象的理解,分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN.如果两个平行宇宙互不干扰,那对现在的你也 ...

  5. git分支管理与冲突解决(转载)

    Git 分支管理和冲突解决 原文:http://www.cnblogs.com/mengdd/p/3585038.html 创建分支 git branch 没有参数,显示本地版本库中所有的本地分支名称 ...

  6. IOS Git源代码管理工具

    .新建一个“本地仓库” $ git init .配置仓库 >告诉git你是谁 git config user.name lnj >告诉git怎么联系你 git config user.em ...

  7. git指令-管理修改

    git指令-管理修改 git管理的不是文件,而是修改 eg:对readme.txt文件进行修改一行 在最后追加一句git has to tracked 然后添加,并且查看状态 cat +文件名称 表示 ...

  8. Git代码管理工具

    Git代码管理工具 Git 是分布式的源代码管理工具,这点区别于svn -让源代码可以被追溯,主要是记录了每次的更新了什么,如果新版本不想用,那么则可以退回之前的版本 -Git 是Linux之父当年为 ...

  9. git版本控制管理实践-4

    vcs: version control system 版本控制系统 local vcs, 集中式版本控制系统: centralized vcs; 分布式vcs: distributed vcs Lo ...

随机推荐

  1. python 科学计算及数据可视化

    第一步:利用python,画散点图. 第二步:需要用到的库有numpy,matplotlib的子库matplotlib.pyplot numpy(Numerical Python extensions ...

  2. coredump文件抓取设置

    ulimit -c unlimitedecho 1 > /proc/sys/kernel/core_uses_pidecho "/tmp/core-%e-%s-%u-%g-%p-%t& ...

  3. ionic 实现 应用内(webview中html页面点击) 和 应用外 (浏览器html页面点击) 打开本地安装应用

    应用内(webview中html页面点击) : 应用内打开本地安装应用指的是webview里打开应用,需要2个步骤: 1: 需要下载一个cordova插件:com.lampa.startapp ,也可 ...

  4. Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析

    Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析 今天发一篇”水文”,可能很多读者都会表示不理解,不过我想把它作为并发序列文章中不可缺少的一块来介绍.本来以为花不了 ...

  5. knative

    office Doc Knative 简介 Install sevice example (knative) There is only one node in the cluster so we u ...

  6. 2018年-2019年第二学期第三周C#学习个人总结

    在第三周,我们又开始了C#的进一步学习,学习的范围是从4.8static关键字到4.11对象初始化器.在4.8static关键字我学到了静态字段,静态属性,静态方法,静态类,静态构造方法单例模式,嵌套 ...

  7. style.left offsetLeft offsetwidth clientLeft clientWidth scrollLeft scrollWidth

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  8. Pycharm 的设置--参数设置(运行.py文件带参数,例如argument)

    程序运行时,如果需要输入参数,如下图中程序代码: 在生成exe后,程序在控制台下运行时格式为: 这种情况在调试程序时,如果只是在Pycharm环境中简单执行“Run”菜单下的“Run”命令,会出现以下 ...

  9. (转)Illustrated: Efficient Neural Architecture Search ---Guide on macro and micro search strategies in ENAS

    Illustrated: Efficient Neural Architecture Search --- Guide on macro and micro search strategies in  ...

  10. .NET Core到底有多强?

    测试代码: C# Release 未优化 class Program { static long counter = 0; static void Main(string[] args) { for ...