git init

git init命令用来创建一个新的Git仓储.可以用在一个已经存在的但是没有受Git版本控制的项目,或者用来初始化一个全新的没有任何文件的空仓储.git init通常是你开始一个新的项目时要运行的第一个命令.

运行git init会在你项目的根目录创建一个.git文件夹,这个文件夹里面包含了这个仓储的所有元数据.

用法

git init

把当前目录转成一个Git仓储. 会在你的当前文件夹下面创建一个.git子文件夹,有了它才能记录项目的版本信息.

git init <directory>

在你指定的文件夹创建一个空的Git仓储. 运行后会在你的当前目录下创建你指定的文件夹,这个文件夹除了一个.git子文件夹什么都没有.

git init --bare <directory>

初始化一个空的Git仓储, 而且这个仓储不会有工作目录. 中心仓储(共享仓储)应该都是用--bare创建的裸仓储.通常约定--bare后面的文件夹的名字以.git结尾.例如创建一个名为my-project的裸仓储,这个仓储应该在my-project.git文件夹下面.

讨论

对于大多数项目,git init用来创建一个中心仓储--开发人员通常不使用git init来创建他们自己的本地仓储.开发人员通常使用git clone来copy一个已经存在的仓储到他们本地.

裸仓储(bare仓储)

--bare 用来创建一个没有工作目录的仓储.中心仓储应该要是一个裸仓储,因为push一个分支到一个非裸的仓储的时候会有覆盖修改的风险.可以这样认为--bare标识仓储为一个与开发环境不同的存储设备. 这意味着中心仓储是裸仓储,开发者的本地仓储是非裸仓储.

例子

ssh <user>@<host>
cd path/above/repo
git init --bare my-project.git

首先SSH到你的服务器(这个服务器将包含你的中心仓储). 
然后cd到你想存放仓储的目录.
最后使用--bare创建中心仓储.
开发者将使用clone命令在他们的开发机器上创建一个本地copy

[译]git init的更多相关文章

  1. git init和git init -bare区别

    1 Git init  和 git init –bare 的区别 用"git init"初始化的版本库用户也可以在该目录下执行所有git方面的操作.但别的用户在将更新push上来的 ...

  2. [译]git clone

    git clone git clone命令copy一个已经存在的Git仓储. git clone有点像svn的checkout, 他的不同之处是这个copy也是一个完整的仓储-它有自己的历史纪录, 能 ...

  3. git init 与 git init --bare 的区别

    git init  和 git init –bare 的区别 使用命令"git init --bare"(bare汉语意思是:裸,裸的)初始化的版本库(暂且称为bare repos ...

  4. 初始化仓库(git init)

    创建新的仓库 首先进入需要初始化的目录,然后输入git init D:\Git\test λ git init Initialized empty Git repository in D:/Git/t ...

  5. git init github

    Command line instructions 执行这些命令是在windows 右菜单里面的git bash运行. Git global setup git config --global use ...

  6. git init 与 git init --bare 区别

    git init 与 git init --bare 区别 发现问题 最早是在公司的wiki上发现了这个命令,google后发现值得记录下来 实践中发现的区别 网上找了很多资料,但说的很乱,干脆在自己 ...

  7. git init新建仓库并上传到远端

    git init git add README.md git commit -m "first commit" git remote add origin https://gith ...

  8. git init error:Malformed value for push.default: simple

    git init error:Malformed value for push.default: simple 1.git config --global push.default matching

  9. git init之后,没有.git后缀的文件

    git init之后,打开相关目录没有.git后缀的文件 尝试

随机推荐

  1. Codeforces Round #389 Div.2 A. Santa Claus and a Place in a Class

    time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...

  2. RabbitMQ代码第一步

    Hello RabbitMQ 终于到了使用.Net连接RabbitMQ的时候了,我们首先新建一个控制台应用程序,在程序包管理控制器中NuGet中下载 RabbitMQ. Install-Package ...

  3. MVC5-8 ViewData、ViewBag、TempData分析

    MVC中Contoller与视图的数据传输 后台的值显示到界面上,我们有几种方式呢.MVC给我们提供了ViewData.ViewBag.TempData.Model这几种方式,当然我们也可以用ajax ...

  4. 加州大学伯克利分校Stat2.2x Probability 概率初步学习笔记: Midterm

    Stat2.2x Probability(概率)课程由加州大学伯克利分校(University of California, Berkeley)于2014年在edX平台讲授. PDF笔记下载(Acad ...

  5. (译)你应该知道的jQuery小技巧

    帮助提高你jQuery应用的简单小技巧 回到顶部按钮 图片预加载 判断图片是否加载完 自动修补破损图像 Hover切换class类 禁用输入 停止正在加载的链接 toggle fade/slide 简 ...

  6. servlet中请求转发(forword)与重定向(sendredirect)的区别

    摘自:http://www.cnblogs.com/CodeGuy/archive/2012/02/13/2349970.html 通俗易懂 servlet请求转发与重定向的区别: request.s ...

  7. PHP设计模式-策略模式 转

    策略模式(Strategy Pattern) 策略模式是对象的行为模式,用意是对一组算法的封装.动态的选择需要的算法并使用. 策略模式指的是程序中涉及决策控制的一种模式.策略模式功能非常强大,因为这个 ...

  8. easyUI 树的上下文菜单

    一.属性:onContextMenu onContextMenu: function(e,node){ e.preventDefault(); $(this).tree('select',node.t ...

  9. this.name=name;和this.setName(name);的区别

    其实一般属性设置为private后,才会写属性的set和get方法 在本类中可以用 this.name=name 但是,在其他类中药给name赋值,就只能用set了

  10. Eclipse中修改Web项目的URL访问路径

    背景 访问路径,也就是指在浏览器中访问该web系统时的根路径,比如http://localhost:8080/xxxx/index.jsp  这里的xxxx,也就是request.getContext ...