Git 安装配置

胖大海
• 阅读 800

基本概念

我们先来理解下 Git 工作区、暂存区和版本库概念:

  • 工作区:就是你在电脑里能看到的目录。
  • 暂存区:英文叫 stage 或 index。一般存放在.git目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
  • 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是 Git 的版本库。

下面这个图展示了工作区、版本库中的暂存区和版本库之间的关系:

Git 安装配置

  • 图中左侧为工作区,右侧为版本库。在版本库中标记为 "index" 的区域是暂存区(stage/index),标记为 "master" 的是 master 分支所代表的目录树。

  • 图中我们可以看出此时 "HEAD" 实际是指向 master 分支的一个"游标"。所以图示的命令中出现 HEAD 的地方可以用 master 来替换。

  • 图中的 objects 标识的区域为 Git 的对象库,实际位于 ".git/objects" 目录下,里面包含了创建的各种对象及内容。

  • 当对工作区修改(或新增)的文件执行git add命令时,暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中。

  • 当执行提交操作(git commit)时,暂存区的目录树写到版本库(对象库)中,master 分支会做相应的更新。即 master 指向的目录树就是提交时暂存区的目录树。

  • 当执行git reset HEAD命令时,暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响。

  • 当执行git rm --cached 命令时,会直接从暂存区删除文件,工作区则不做出改变。

  • 当执行git checkout .或者git checkout -- 命令时,会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区中的改动。

  • 当执行git checkout HEAD .或者git checkout HEAD 命令时,会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。

Git 基本操作

Git 的工作就是创建和保存你项目的快照及与之后的快照进行对比。

本章将对有关创建与提交你的项目快照的命令作介绍。

Git 常用的是以下 6 个命令:git clonegit pushgit addgit commitgit checkoutgit pull,后面我们会详细介绍。

Git 安装配置

说明:

  • workspace:工作区
  • staging area:暂存区/缓存区
  • local repository:版本库或本地仓库
  • remote repository:远程仓库

一个简单的操作步骤:

  • git init - 初始化仓库。

  • git add . - 添加文件到暂存区。

  • git commit - 将暂存区内容添加到仓库中。

  • 创建仓库命令

    命令 说明
    git init 初始化仓库
    git clone 拷贝一份远程仓库,也就是下载一个项目。
    提交与修改
    Git 的工作就是创建和保存你的项目的快照及与之后的快照进行对比。

    下表列出了有关创建与提交你的项目的快照的命令:

    命令 说明
    git add 添加文件到暂存区
    git status 查看仓库当前的状态,显示有变更的文件。
    git diff 比较文件的不同,即暂存区和工作区的差异。
    git commit 提交暂存区到本地仓库。
    git reset 回退版本。
    git rm 将文件从暂存区和工作区中删除。
    git mv 移动或重命名工作区文件。
    提交日志
    命令 说明
    git log 查看历史提交记录
    git blame 以列表形式查看指定文件的历史修改记录
    远程操作
    命令 说明
    git remote 远程仓库操作
    git fetch 从远程获取代码库
    git pull 下载远程代码并合并
    git push 上传远程代码并合并

  • 大家快来一起学习 GIT 分布式版本控制系统,缺乏机器练手的小伙伴可以去 cnaaa 看一看!
点赞
收藏
评论区
推荐文章
lucien-ma lucien-ma
3年前
Git基础命令教程
Git学习git之前,我们需要先明白一个概念,版本控制!版本控制什么是版本控制版本控制(Revisioncontrol)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。实现跨区域多人协同开发追踪和记载一个或者多个文件的历史记录组织和保护你的源代码和文档统计工作量
GIT常用命令
1、初始化本地Git存储库languagegitinit2、创建远程存储库的本地副本languagegitclonessh://git@github.com/username/repositoryname.git3、检查状态languagegitstatus4、将文件添加到暂存区languagegitaddfil
Stella981 Stella981
2年前
Git管理修改
Git跟踪并管理的是修改,而非文件。那么,什么是修改呢?你新增了一行或者修改了一个词都是一个修改。我们来做个简单的实验就能理解,首先,我们先添加一行内容:$catwhatisgitGitisopensourcesoftware.Git是开源软件。新增第一行然后,提交到暂存区:$g
Stella981 Stella981
2年前
Git 的暂存区(staging area)理解
    通常在很多传统集中式版本控制系统中,只有两个空间用来管理你的数据,一个是你的workingcopy(工作区),另一个便是datastore(版本库),然而在Git中,引入了stagingarea(index)这一概念,我们可以把它看做一个“码头”,你来决定其中的哪些改变可以被“运走”。    有了暂存区,我们的工作区边和Git库就不再直
Wesley13 Wesley13
2年前
11月14日任务
一、安装Git  \如果你已经安装好了Git,可以忽略这一步  CentOS安装Git:yuminstallgit  查看Git版本信息:gitversion  配置Git用户信息:gitconfigglobaluser.name"woider"gitconfigglob
Stella981 Stella981
2年前
Git 实战教程
1.Git配置使用Git的第一件事就是设置你的名字和email,这些就是你在提交commit时的签名,每次提交记录里都会包含这些信息。使用gitconfig命令进行配置:​$gitconfigglobaluser.name"ilimhumar"$gitconfigglobal
Stella981 Stella981
2年前
Git本地上传到服务器
1.本机window系统的话先下载安装git 下载后在开始菜单里面找到"GitGitBash"进入命令2.找到要上传的目录,通过命令gitinit把这个目录变成git可以管理的仓库gitinit3、把文件添加到版本库中,使用命令gitadd.添加到暂存区里面去,不要忘记后面的小数点“.”,意为添加文件夹下的所
Stella981 Stella981
2年前
Git(二)Git几个区的关系与Git和GitHub的关联
一、Git的工作区、暂存区和版本库之间的区别和联系  1)工作区    在PC中能看得到的创建的一个管理仓库的目录。比如目录下GitTest里的文件(.git隐藏目录版本库除外)。或者以后需要再新建的目录文件等等都属于工作区范畴。    !(https://oscimg.oschina.ne
Stella981 Stella981
2年前
Git基础命令篇
一、Git介绍(1)Git是一个开源(LinusTorvalds为了帮助管理Linux内核开发而开发)的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目,与常用的版本控制工具CVS,SVN等不同,它采用了分布式版本库的方式,不必服务器端软件支持。(2)Git的工作区、暂存区和版本库:工作区:就
可莉 可莉
2年前
19.03.04JavaWeb作业
Git及用法Git是目前世界上最先进的分布式版本控制系统。Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推
胖大海
胖大海
Lv1
故园东望路漫漫,双袖龙钟泪不干。
文章
62
粉丝
3
获赞
28