Git学习(三)——暂存区、远程仓库、增删改管理

时间:2023-01-26 09:44:27

一、工作区和暂存区

工作区(Working Directory) 就是在你的电脑里能看到的目录

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

Git学习(三)——暂存区、远程仓库、增删改管理

把文件往Git版本库里添加的时候,分两步执行:

第一步是用git add把文件添加进去,实际上就是把文件添加到暂存区;

第二部是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

一旦提交后,如果没有对工作区做任何修改,那么工作区就是干净的。

二、管理修改、撤销、删除

1、Git只跟踪“修改”,不管理文件,每次修改,如果不add到暂存区,那么就不会加入到commit中

2、撤销修改:git checkout -- readme.txt

(1)把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是readme.txt已经添加到暂存区,后来又做了修改,现在,撤销修改就回到添加到暂存区后的状态。

总之,就是让这个文件回到最近一个git commit 或者 git add时的状态。

(2)把文件改乱了还git add到暂存区了,用git reset HEAD filename 可以把暂存区的修改撤销掉(unstage),重新放回工作区。git reset 命令既可以回退版本,也可以把暂存区的修改回退到工作区。

(3)小结

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- filename

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD filename,回到了场景1,第二部按场景1操作。

3、删除文件

一般情况下,通常直接在文件管理器中把没用的已提交的文件删除,或者用rm命令删除

Git学习(三)——暂存区、远程仓库、增删改管理

这个时候,工作区和版本库就不一致了,git status命令会立刻告诉你哪些文件被删除了:

(1)确实要删除该文件,用git rm 删掉,并且git commit;

Git学习(三)——暂存区、远程仓库、增删改管理

(2)误删文件,git checkout 用版本库力的版本替换工作区里的版本,无论工作区是修改还是删除,都可以”一键还原“。

Git学习(三)——暂存区、远程仓库、增删改管理

三、从远程仓库克隆

要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone 命令克隆

Git学习(三)——暂存区、远程仓库、增删改管理

Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快

Git学习(三)——暂存区、远程仓库、增删改管理的更多相关文章

  1. git(工作区,暂存区,管理修改,撤销修改,删除文件)

    工作区和暂存区 984次阅读 Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念. 先来看名词解释. 工作区(Working Directory) 就是你在电脑里能看到的目录,比如我的l ...

  2. 理解git工作区和暂存区

    版本库 在工作区目录中有一个.git文件,这个其实不是工作区而是Git的版本库 版本库中包含两个部分,一个是暂存区index/stage,另一个是git自动为我们创建的第一个分支master,以及一个 ...

  3. Git工作区、暂存区和版本库

    基本概念 我们先来理解下Git 工作区.暂存区和版本库概念 工作区:就是你在电脑里能看到的目录. 暂存区:英文叫stage, 或index.一般存放在 ".git目录下" 下的in ...

  4. Git 工作区、暂存区和版本库

    基本概念 我们等来理解下Git工作区.暂存区和版本库概念 工作区:就是你在电脑里能看到的目录 强烈推荐git新手阅读 暂存区:英文叫stage,或index.一般存放在igt 目录下的index文件( ...

  5. Git复习(九)之理解git工作区和暂存区

    前言 Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念. 版本库 在工作区目录中有一个.git文件,这个其实不是工作区而是Git的版本库 版本库中包含两个部分,一个是暂存区index/ ...

  6. Git-Runoob:Git 工作区、暂存区和版本库

    ylbtech-Git-Runoob:Git 工作区.暂存区和版本库 1.返回顶部 1. Git 工作区.暂存区和版本库 基本概念 我们先来理解下Git 工作区.暂存区和版本库概念 工作区:就是你在电 ...

  7. Git 工作区、暂存区和版本库、操作流程

    Git 工作区.暂存区和版本库 基本概念 我们先来理解下Git 工作区.暂存区和版本库概念 工作区:就是你在电脑里能看到的目录. 暂存区:英文叫stage, 或index.一般存放在 ".g ...

  8. 【第四篇】-Git 工作区、暂存区和版本库之Spring Cloud直播商城 b2b2c电子商务技术总结

    Git 工作区.暂存区和版本库 基本概念 我们先来理解下 Git 工作区.暂存区和版本库概念: 工作区:就是你在电脑里能看到的目录. 暂存区:英文叫 stage 或 index.一般存放在 .git  ...

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

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

  10. git工作区和暂存区

    工作区(Working Directory) 就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区: 版本库(Repository) 工作区有一个隐藏目录.git,这个不算工作区, ...

随机推荐

  1. shll 变量

    name=zhagnsan age=11 echo $ name $age 赋值号两边没有任何空格.当想取shell变量的值时,需要在变量名前加上$字符,当所赋的值中间含有空格时,要加上引号 函数: ...

  2. ubuntu10.04+win7双系统,重装win7后,恢复grub引导菜单以及命令行引导linux

    我在我的小Y上安装了ubuntu10.04和win7旗舰版的双系统,采用的是grub引导.今天win7不知道哪儿出了问题,windows update更新一直报错,(当然360也是打不上滴)网上查了很 ...

  3. 树莓派USB摄像头与camera模块对比

    http://www.cnblogs.com/weixinforspurs/p/5575962.html ——————————————————————————————————————————————— ...

  4. ubuntu13.10下安装samba

    1.现在的ubuntu系统都默认安装了samba服务,如果是精简系统的话,可以通过apt-get进行安装 sudo apt-get install samba sudo apt-get cifs-ut ...

  5. JS学习笔记 -- 定时器,提示框的应用

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

  6. Img图片超过了DIV的最大宽度 解决方案

    在该图片所在的div限定一下里边所有的图片的最大长度,这个长度的值可以是div的长度的略小即可. 例如: <div class="content" style="w ...

  7. scp 对拷文件夹 和 文件夹下的所有文件 对拷文件并重命名

    对拷文件夹 (包括文件夹本身) scp -r   /home/wwwroot/www/charts/util root@192.168.1.65:/home/wwwroot/limesurvey_ba ...

  8. 使用javaDate类代数据仓库维度表

    使用javaDate类代数据仓库维度表 Date类别: ,返回一个相对日期的毫秒数.精确到毫秒.但不支持日期的国际化和分时区显示. Date 类从Java 开发包(JDK)1.0 就開始进化,当时它仅 ...

  9. 【LeetCode】Algorithms 题集(三)

    Search Insert Position 意: Given a sorted array and a target value, return the index if the target is ...

  10. 【Java学习笔记之三十一】详解Java8 lambda表达式

    Java 8 发布日期是2014年3月18日,这次开创性的发布在Java社区引发了不少讨论,并让大家感到激动.特性之一便是随同发布的lambda表达式,它将允许我们将行为传到函数里.在Java 8之前 ...