1.仓库的获取

  Git仓库的获取有两种方式:

1.从现有目录或者是项目中导入所有文件到Git中。

2.从一个服务器clone一个现有的Git仓库。

  如果使用第一种方式,只需要在你希望被Git进行管理的项目的根目录下面运行以下Git命令:

$ git init
$ git add .
$ git add README.md
$ git commit -m "Initial project version"

git init : 初始化Git仓库。 该命令会在你当前所在的目录创建一个.git文件夹,这个文件夹是Git仓库的骨干。

注意:运行该命令之后,你仅仅只是做了一个初始化的操作,你所在的项目的文件并没有被Git跟踪(track)。如果你是在一个已经存在文件的文件夹(而不是空文件夹)执行了git init命令,你应该开始track这些非空文件夹中的文件。

git add . :将当前所在目录中的所有文件加入到暂存区。

git add README.md : 将README.md文件加入到暂存区。

git commit -m "Initial projrct version" : 将暂存区的文件提交到Git仓库。

执行以上的命令之后,你的项目的所有文件就被Git管理起来了,后面你对项目中的文件的修改都会被Git进行管理。

  如果使用第二种方式,使用以下命令即可:

注意:例子中演示的是克隆libgit2这个远程仓库,你可以使用git clone你想要得到的其它远程仓库。这里使用的是https的方式进行克隆,git clone还支持ssh的方式。

$ git clone https://github.com/libgit2/libgit2

git clone :这条命令做了两件事情:

1.在本地初始化一个.git文件夹,然后将远程仓库的所有数据拉取到.git文件夹中;

2.从.git文件夹中读取最新版本的文件,并且拷贝到当前目录。

运行完git clone之后,你的本地目录就存在了与远程仓库一样的项目文件供你使用。

2.Git文件的状态变化周期(生命周期)

  你工作目录中的每一个文件都不外乎这两种状态:已追踪(tracked)和未追踪(untracked)

1.已追踪(tracked):已追踪的文件指的是已经被纳入到版本控制的文件。已追踪的这些文件又可能处于已修改(modified),未修改(unmodified),已暂存(staged)的状态。

当你克隆了一个远程仓库到本地的时候,工作目录中所有的文件都是已追踪的文件,而且都是处于未修改的状态。

2.未追踪(untracked):未追踪的文件表示不被纳入版本控制的文件,除了已追踪的文件之外所有的文件都是未追踪文件。例如当你克隆了一个项目到本地之后,你在本地的项目中新添加了一个文件,那么这个文件就是未追踪的状态。

  Git文件的状态变化周期(生命周期)参考下图:

1.未追踪的文件(Untracked)在 git add 之后会变成已暂存(staged)状态。

2.未修改的文件(Unmodified)在被修改编辑之后会变成已修改(modified)状态。

3.已修改(modified)的文件在 git add之后会变成已暂存(staged)状态。

4.已暂存的文件(staged)在 git commit 之后会变成未修改(Unmodified)状态。

5.未修改的文件(Unmodified)在 git rm 之后会变成未跟踪(Untracked)状态(注意git rm会删除掉指定的文件)。

2.Git基础-仓库的获取方式与Git文件的状态变化周期(生命周期)的更多相关文章

  1. git 远程仓库版本的回退以及git reset 几种常用方式记录

    由于 github push 了两个比较潦草的commit, 自己很不满意,又不想重新开vpn进行上传,所以找了一下相关的教程. 最后研究了一下,原理为先在本地还原到你想要的commit,然后强制pu ...

  2. Android学习之基础知识四-Activity活动6讲(体验Activity的生命周期)

    一.体验活动的生命周期的执行 代码组成: 1.三个Java类:MainActivity.java.NormalActivity.java.DialogActivity.java 2.三个布局文件:ac ...

  3. Git 基础(分布式版本控制系统)

    1.Git 简史 自诞生于 2005 年以来,Git 日臻成熟完善,在高度易用的同时,仍然保留着初期设定的目标.它的速度飞快,极其适合管理大项目,有着令人难以置信的非线性分支管理系统. 2.Git 基 ...

  4. Git 基础 —— 常见使用场景

    Git 基础学习系列 Git 基础 -- 安装 配置 别名 对象 Git 基础 -- 常用命令 Git 基础 -- 常见使用场景 Git基础 -- Github 的使用 突然插入 Bugifx 工作, ...

  5. GitHub进阶之利用Git远程仓库篇

    #在上一篇文章,相信大家对GitHub已经有了一个基础的理解 接下来我们来学习一下如何利用git来远程仓库 一,git是什么 git:一个免费的开源版本控制软件 用途:利用Git管理GitHub上的代 ...

  6. git基础知识

    Git的两大功能 1.协作开发 2.版本控制 版本库 版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都 ...

  7. git创建仓库

    创建仓库 git init: Git 使用 git init 命令来初始化一个 Git 仓库,Git 的很多命令都需要在 Git 的仓库中运行,所以 git init 是使用 Git 的第一个命令. ...

  8. Git 创建仓库【转】

    转自:http://www.runoob.com/git/git-create-repository.html Git 创建仓库 本章节我们将为大家介绍如何创建一个 Git 仓库. 你可以使用一个已经 ...

  9. Git如何克隆Gitlab?Git本地仓库如何上传Gitlab?

    首先确保本机已经安装上Git,其次确认可以正常访问Gitlab服务器 环境: Git:Centos 7.x  192.168.126.138 Gitlab: Centos7.x 192.168.126 ...

随机推荐

  1. gitlab简介与配置

    版本控制介绍 版本控制是指对软件开发过程中各种程序代码.配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一. 版本控制最主要的功能就是追踪文件的变更.它将什么时候.什么人更改了文件的什么 ...

  2. Koa源码分析(二) -- co的实现

    Abstract 本系列是关于Koa框架的文章,目前关注版本是Koa v1.主要分为以下几个方面: Koa源码分析(一) -- generator Koa源码分析(二) -- co的实现 Koa源码分 ...

  3. Data_Structure01-绪论

    ---恢复内容开始--- 一.作业题目 仿照三元组或复数的抽象数据类型写出有理数抽象数据类型的描述 (有理数是其分子.分母均为整数且分母不为零的分数).有理数基本运算: 构造有理数T,元素e1,e2分 ...

  4. 微信小程序开发之搞懂flex布局5——cross axis

    Cross Axis——交叉轴,与Main Axis(主轴)垂直交叉. main axis is row or row-reverse the cross axis runs down the col ...

  5. day 35 线程

    内容回顾 # 互斥锁 #在同一个进程中连续锁多次 #进程的数据共享 #进程之间可以共享数据 #提供共享数据的类是Manager #但是它提供的list|dict 这些数据类型 #针对+= -= *= ...

  6. Python从入门到精通之Fifth!

    字典  类名:dict   字典是无序的. 字典的创建  info = {"k1":{1:"abc",[1,2,3]},"k2":True} ...

  7. zepto 源码 $.contains 学习笔记

    $.contains(parent,node)  返回值为一个布尔值 ==> boolean parent,node我们需要检查的节点检查父节点是否包含给定的dom节点,如果两者是相同的节点,返 ...

  8. arm 执行 交叉编译完成的可执行文件时 出现premission denied 问题

    我用的tftp传过去的文件 然后传完 执行的时候 出现了premission denied (权限不够)得问题 解决方法 就是添加权限  chmod 777 filename

  9. C语言内存四区的学习总结(二)---- 堆区

    接上篇,内存四区的分析-静态区,下面来说明一下堆区总结. 堆区分析: 堆区(heap):一般由程序员分配释放(动态内存申请与释放),若程序员不释放,程序结束时可能由操作系统回 就下面的程序: #inc ...

  10. JDBC学习(含转载)

    首先连接数据库: Class.forName("com.mysql.jdbc.Driver");//加载jdbc驱动 Connection conn=DriverManager.g ...