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. guns开源项目数据库切换为oracle

    本次使用oracle版本 11.2.0.1.0 1.guns-core 修改pom.xml 文件引入oracle驱动 <dependency> <groupId>com.ora ...

  2. log4j-日志记录小结

    log4j.properties配置 ### 以系统输出流的方式按照指定的格式在控制台上输出日志信息 ###log4j.appender.stdout=org.apache.log4j.Console ...

  3. 20175316盛茂淞 2018-2019-2 《Java程序设计》第6周学习总结

    20175316盛茂淞 2018-2019-2 <Java程序设计>第6周学习总结 教材学习内容总结 第7章 内部类与异常类 1.使用 try.catch Java中所有信息都会被打包为对 ...

  4. IDEA的相关使用-----快捷键

    转:https://blog.csdn.net/qq_35091777/article/details/80988165 IntelliJ Idea 常用快捷键列表 Alt+回车 导入包,自动修正Ct ...

  5. python turtle库

    turtle库初步 先看 https://www.cnblogs.com/chy8/p/9448606.html 一 turtle库介绍 turtle乌龟 import turtle from tur ...

  6. linux系统中使用socket直接发送ARP数据

    这个重点是如这样创建socket:  sock_send = socket ( PF_PACKET , SOCK_PACKET , htons ( ETH_P_ARP) ) ; 其后所有收发的数据都是 ...

  7. cookie httpOnly 打勾

    在 chrome dev tools 中,通过 Application -> Cookies 可以查看 cookie. 其中有一列表头为`HTTP`,如果其下打勾了,则表明 httpOnly. ...

  8. ie9 css文件大小限制

    使用webpack生成CSS对于一些有趣的定义很有趣.不幸的是,当你拥有一个大型应用程序并且需要IE9支持时,乐趣就会停止,因为IE9会忽略你生成的CSS包中的大于4000个选择器的部分.解决方案是将 ...

  9. Charles配置抓取HTTPS请求的Android配置

    关于android手机在mac版charles上抓不到包这个问题困扰了很久,查阅了很多资料,发现是android7.0系统安全策略问题. Charles抓包正常流程1.在手机上配置证书 点击后:直接在 ...

  10. xmlhttprequest readyState 属性的五种状态

    关于readystate五个状态总结如下: readyState 状态    状态说明(0)未初始化此阶段确认XMLHttpRequest对象是否创建,并为调用open()方法进行未初始化作好准备.值 ...