『现学现忘』Git基础 — 8、Git创建本地版本库
1、Git版本库介绍
每个Git版本控制系统的主机中,都可以包含若干个本地版本库,一般情况下一个本地版本库对应一个项目,用于对某个特定项目中的本地文件进行版本管理。其实,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除等操作Git都能跟踪到,以便任何时刻都可以追踪历史,或者在将来某个时刻可以进行“还原”。
Git中版本库又名仓库,英文名Repository,使用命令git init来创建并初始化一个本地版本库。
初始化后,在当前目录下会出现一个名为.git的目录,所有Git需要的数据和资源都存放在这个目录中。包括暂存区文件,版本记录文件,配置文件等。换句话说,如果你想从项目中删除Git的版本控制,但又要保留项目原文件,那么只需要将这个.git目录删除即可。这样话,这个项目就与Git没有任何关系。
2、创建本地版本库
在日常工作当中,创建Git本地版本库的场景有两种。
场景一:创建一个空的本地版本库。
介绍:
这种情况是项目还没有代码,需要先创建一个Git本地版本库的时候。
在你专门存放Git版本库的文件夹中,执行git init your_project(项目名),这个时候Git会在当前路径下,创建一个和项目名称同名的文件夹,这个文件夹就是一个Git的裸仓库,里面的会有一个隐藏的.git文件夹。
要进行开发的时候,只要进入到这个文件夹里面就可以了。
步骤:
直接用Git管理新建的项目
- 进入到Git本地版本库管理目录
git-repository。 - 查看目录内容。
- 执行
$ git init your_project,创建Git本地版本库。 - 查看Git本地版本库是否创建。
- 进入到刚刚创建的Git本地版本库。
- 查看Git本地版本库中的内容。
- 进入
.git目录,进行查看。
演示:

说明
- 当我们执行完
$ git init first_git_repo命令之后,会出现下面一行提示。
Initialized empty Git repository in J:/git-repository/first_git_repo/.git/
意思是:初始化一个空的Git仓库,然后是仓库的路径。.git目录:这个文件夹是Git的核心内容,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。这个文件夹以后我们会详细的讲解。- 后面显示
(master)表示默认创建了master主分支。
提示:
- 我们也可以在
git-repository目录中,先通过mkdir first_git_repo,创建一个仓库目录,然后在进入这个目录中,执行git init命令,和上边是一样的,这里就不演示了。- 如果你使用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文。
场景二:项目中已存在文件时,创建该项目的本地版本库。
介绍:
这种情况就是在创建仓库之前,项目中已经有一些代码文件了。换种方式说,在本地创建Git仓库,把代码纳入到Git管理中,提交到 GitHub。
针对这种情况,我们只需要进入到已有的项目代码所在的文件夹,然后执行git init命令就可以了。
步骤:
把已有的项目文件的目录纳入Git管理
second_git_repo目录是一个已有文件的项目目录。- 进入
second_git_repo目录,查看内容。 - 执行
git init命令,把该目录纳入Git管理。 - 该目录纳入Git管理后,查看目录以有
.git目录。 - 进入
.git目录,进行查看。
演示:

以上就是Git在本地创建版本库常用的两种情况。
场景三:在GitHub网站上创建仓库,克隆到本地。
1、进入GitHub网站,点击右上角的加号,选择穿件仓库。

2、进入到创建Git仓库页面。

- Public:公有的,就是大家谁都能看得到的仓库,也能下载你仓库中的代码。
- Private:私有的,你可以选择让谁看到,需要花钱
其他的不用管直接点击创建(Create repository)。
3、查看创建的仓库,选择认证方式。

会有一个仓库列表,点击你刚刚创建的仓库。

| https和ssh验证方式的区别 |
|---|
| https基于用户名密码的验证方式。 |
| SSh基于公钥私钥的验证方式(sshkey的方式),之前讲过。 |
4、克隆仓库到本地
进入到你想克隆的位置的文件夹中。

执行git clone + 远程仓库路径。

查看git-repository-temp目录中,已经clone出GitHub上创建的仓库了。

进入clone到本地的项目TestNG中查看。

里边也有.git文件夹,说明也被Git管理。
以上就是三种创建Git的形式。
『现学现忘』Git基础 — 8、Git创建本地版本库的更多相关文章
- Git学习(1)-本地版本库的创建
我用的是Git-2.14.3-64-bit版本,在windows64位上运行的,把软件分享下链接:http://pan.baidu.com/s/1jIoZ7Xc 密码:13q2. 安装及配置自行百度, ...
- 安装git,创建本地版本库
安装 由于我使用的是Ubuntu,因此安装很简单,输入:sudo apt-get install git 如果是其他Linux版本,可以直接通过源码安装.先从Git官网下载源码,然后解压,依次输入:. ...
- Git创建本地版本库
什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都可以追踪历史,或 ...
- 『现学现忘』Docker基础 — 41、将本地镜像推送到阿里云
目录 1.准备工作 2.阿里云容器镜像仓库的使用 (1)创建命名空间 (2)创建容器镜像 (3)查看阿里云镜像仓库的信息 3.将本地Docker镜像推送到阿里云 (1)登陆阿里云 (2)给镜像生成版本 ...
- 『现学现忘』Git基础 — 13、Git的基础操作
目录 1.Git最基础的使用方式 (1)初始化本地版本库 (2)查看文件的状态 (3)把文件添加到暂存区 (4)把暂存区的内容提交到本地版本库 2.总结本文用到的Git命令 1.Git最基础的使用方式 ...
- 『现学现忘』Git基础 — 18、Git对象的总结
目录 1.Git操作最基本的流程 2.工作目录中文件的状态 3.Git效率说明 提示:前面三篇文章已经分别的对blob对象.tree对象.commit对象进行了详细的说明,这篇文章我们总结一下,Git ...
- 『现学现忘』Git对象 — 16、Tree对象详解
目录 1.Tree对象介绍 2.Tree对象说明 (1)初始化一个新的本地版本库 (2)创建一个树对象(重点) (3)创建第二个文件(重点) (4)将第一个树对象加入暂存区,使其成为新的树对 3.总结 ...
- 『现学现忘』Git基础 — 21、git diff命令
目录 1.git diff 命令说明 2.比较工作区与暂存区中文件的差别 3.比较暂存区与本地库中文件的差别 4.总结git diff命令常见用法 5.总结 1.git diff 命令说明 在comm ...
- 『现学现忘』Git基础 — 22、Git中文件重命名
目录 1.用学过的命令进行文件重命名 2.使用git mv命令进行文件重命名 我们这篇文章来说说在Git中如何进行文件重命名. 提示一下,下面所说明的是对已经被Git管理的文件进行重命名,未被Git追 ...
随机推荐
- 羽夏看Win系统内核——内存管理篇
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...
- 【freertos】005-启动调度器分析
前言 本节主要讲解启动调度器. 这些都是与硬件相关,所以会分两条线走:posix和cortex m3. 原文:李柱明博客:https://www.cnblogs.com/lizhuming/p/160 ...
- class文件和java文件区别
- 【算法篇】Bitmap 算法
首先,什么是Bitmap算法(位图算法)呢? 一:定义: Bit map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素.使用Bit为用来存储数据的单位, 可以大大节省存储空间. ...
- Java 线程池中 submit() 和 execute()方法有什么区别?
两个方法都可以向线程池提交任务,execute()方法的返回类型是 void,它定义在 Executor 接口中. 而 submit()方法可以返回持有计算结果的 Future 对象,它定义在 Exe ...
- 什么是 AOP?
在软件开发过程中,跨越应用程序多个点的功能称为交叉问题.这些交叉问题与 应用程序的主要业务逻辑不同.因此,将这些横切关注与业务逻辑分开是面向方 面编程(AOP)的地方.
- Myql 中的事务回滚机制概述 ?
事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个 不可分割的工作单位,事务回滚是指将该事务已经完成的对数据库的更新操作撤 销.要同时修改数据库中两个不同表时,如果它们不是一个事务 ...
- 在虚拟机里面运行java程序
首先输入vi在里面写一个java程序 然后再查找jdk 复制jdk名字 然后安装jdk 安装完之后输入Javac加你创建的文件名 然后再输入Java 和文件名(这个不要加后缀)然后就打印出来了
- 构造器注入和 setter 依赖注入,那种方式更好?
每种方式都有它的缺点和优点.构造器注入保证所有的注入都被初始化,但是 setter 注入提供更好的灵活性来设置可选依赖.如果使用 XML 来描述依赖, Setter 注入的可读写会更强.经验法则是强制 ...
- 常见算法的时间复杂度(大O计数法)
定义 对于不同的机器环境而言,确切的单位时间是不同的,但是对于算法进行多少个基本操作(即花费多少时间单位)在规模数量级上却是相同的,由此可以忽略机器环境的影响而客观的反应算法的时间效率. 对于算法 ...