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. OO第二单元小结

    OO第二单元小结 一.三次作业代码分析. 1.第一次作业 第一次作业是单部电梯的傻瓜调度,由于其过分傻瓜,所以第一次作业我只有两个类,一个main,一个电梯,main类负责不断从输入流中读取命令,如果 ...

  2. getQueryString.js

    function getQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&] ...

  3. Listener随笔

    [1]监听器简介   > Listener是JavaWeb中三大组件之一.Servlet.Filter.Listener   > 三大组件都有的共同特点,都需要实现一个接口,并在web.x ...

  4. 模块化jQuery的方法

    首先有一个格式是这样的 require.config({ paths:{ 'jquery':'libs/jquery-3.1.1', 'swiper':'libs/swiper.js' }}); re ...

  5. java中的值传递和引用传递有什么区别呀?

    值传递: (形式参数类型是基本数据类型和String):方法调用时,实际参数把它的值传递给对应的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容,是两个不同的存储单元,所以方法执行中形式参 ...

  6. Mysql双主互备+keeplived高可用架构介绍

    一.Mysql双主互备+keeplived高可用架构介绍 Mysql主从复制架构可以在很大程度保证Mysql的高可用,在一主多从的架构中还可以利用读写分离将读操作分配到从库中,减轻主库压力.但是在这种 ...

  7. C#应用NPOI实现导出EXcel表格中插入饼状图(可实现动态数据生成)

    一.思路:   1.excel是可以通过NPOI插入图片的: 2.C#通过NPOI生成饼状图: 3.把生成的饼状图以字节流的形式插入到表格 二.看代码: #region 生成饼图图例 /// < ...

  8. Flink 报错 "Could not find a suitable table factory for 'org.apache.flink.table.factories.StreamTableSourceFactory' in the classpath"

    先上代码: table = tablexx.select('*).tablexx.groupBy('x).select('x, xx.count ) tableEnvironment // decla ...

  9. JSOI2018 简要题解

    潜入行动 复杂度分析题. 定义状态fi,j,0/1,0/1f_{i,j,0/1,0/1}fi,j,0/1,0/1​表示以iii为根子树放jjj个机器iii这个放不放,iii这个是否已放来进行dpdpd ...

  10. Python_day7

    sys模块 import sys def _add(a, b): return a + b def _sub(a, b): return a - b def _mul(a, b): return a ...