bare Git 仓库是什么?

背景
今天,坐我旁边的同事问我一些关于服务器上命令的问题。其中有一个用了特殊参数的 git init 的命令,我也不认识,遂去 Google...

bare Git 仓库
定义
A bare Git repository is typically used as a Remote Repository that is sharing a repository among several different people.
什么是 bare Git 仓库呢?简单来说,就是在 Git 服务器上的那个远程 Git 仓库,客户端可以对其进行 push、pull 等操作。
创建一个 bare Git 仓库
git init --bare
以上命令会创建一个 bare git 仓库。
bare git 仓库 vs 普通 git 仓库
bare git 仓库与使用 git init 命令创建的普通 git 仓库唯一区别就是:bare git 仓库没有工作目录/工作树,仅仅是包含着了裸仓库数据。
下面我们新建两个文件夹 bare-git-repo 和 normal-git-repo,分别用 git init --bare 和 git init 去初始化看下效果:

可以发现,git status 命令在 bare git 仓库中根本无法使用。而且 bare git 仓库是没有 .git/ 文件夹的,所有配置文件是直接就存在文件夹的根路径下面的。

克隆时创建 bare git 仓库
与 git init --bare 命令类似,我们也可以在使用 git clone 时通过添加 --bare参数来创建一个 bare git 仓库而不是普通的 git 仓库。下面是一个使用 git clone --bare 命令通过克隆 gitignore 仓库在本地创建 git bare 仓库的实例。

bare git 仓库的命名约定
从上面的截图中,我们不难发现,这个自动创建的仓库其文件夹名称为 gitignore.git,嗯这也是 bare git 仓库的标准命名方式。
结论:建议使用 xxxxxx.git 名字来命名 bare git 仓库的文件夹
bare Git 仓库是什么?的更多相关文章
- git仓库的初始化
关于git仓库的初始化和git push的操作 git init git remote add origin ssh://myserver.com/home/git/myapp.git git pul ...
- 搭建本地的git仓库
折腾了快一天了,终于搭建成功了. 分享一下搭建的步骤: 一.GIT仓库的创建 1. adduser git 2. passwd git 此例设置git的密码为123456 3. cd /home/gi ...
- 在Dropbox上搭建私有的Git仓库的教程
导读 Git版本控制系统需要一个服务器端,而GitHub上要想创建私有的Git服务器端仓库则触及到收费项目,于是这里我们利用Dropbox的免费空间,来看一下在Dropbox上搭建私有的Git仓库的教 ...
- git - 搭建git仓库
1. 更新git版本: http://codelife.me/blog/2013/06/25/upgrade-git-on-centos-6-4/ 2. 建立git仓库: git init --bar ...
- 创建局域网内远程git仓库,并将本地仓库push推到远程仓库中
转载请注明出处 http://www.goteny.com/articles/2014/06/136.html http://www.cnblogs.com/zjjne/p/3778640.html ...
- git知识总结-4.git服务器搭建及迁移git仓库
1. 前言 因为手里有一份代码之前是直接从其它git服务器上克隆下来的,现在想自己搭建一个git服务器把这份代码管起来. 2. 搭建git服务器 1.安装git: $ sudo apt-get ins ...
- CentOS安装GIt、上传项目到git仓库
上传项目 登录服务器后安装git yum install git 新建文件夹(仓库) mkdir *.git 初始化仓库 git init --bare *.git 在本地初始化仓库 git init ...
- Linux git 在自己的服务器上建立 git 仓库(repository)
Linux git 在自己的服务器上建立 git 仓库(repository) 服务器端: 在这里使用 ssh 方式登陆: ssh [username]@server_address(建议用超级用户登 ...
- git仓库使用
1.git命令参数 usage: git [--version] [--help] [-c name=value] [--exec-path[=<path>]] [--html-path] ...
随机推荐
- Python入门-变量与命名
在上一篇中,我们定义了很多变量,变量格式是啥?变量名字可以随意么?有啥命名规范么?下面细讲 变量格式 变量名称 = 常量 把常量赋值给变量的过程,就是定义变量. 定义变量 Python中的变量不需要声 ...
- spring-注入集合对象
1.创建Stu类 package com.spring.collections; import java.util.Arrays; import java.util.List; import java ...
- 深入理解Kafka核心设计及原理(二):生产者
转载请注明出处: 2.1Kafka生产者客户端架构 2.2 Kafka 进行消息生产发送代码示例及ProducerRecord对象 kafka进行消息生产发送代码示例: public class Ka ...
- MySQL5.6复制技术
mysql复制功能介绍 我们可以通过为服务器配置主从即一个或多个备库的方式,以及主主结构来进行数据同步,将MySQL的数据分布到多个系统上去.复制过程中一台主库(master)服务器可以数据被同步到多 ...
- 领域驱动模型DDD(二)——领域事件的订阅/发布实践
前言 凭良心来说,<微服务架构设计模式>此书什么都好,就是选用的业务过于庞大而导致代码连贯性太差,我作为读者来说对于其中采用的自研框架看起来味同嚼蜡,需要花费的学习成本实在是过于庞大,不仅 ...
- LinkedList实现
LinkedList源码实现: public class LinkedList<E> { private class Node{ public E e; public Node next; ...
- C语言结构体指针与结构体变量作形参的区别
区别 结构体变量 结构体变量作为形参,传递的是结构体变量本身,是一种值传递 形参结构体变量成员值的改变不影响对应的实参构体变量成员值的改变 结构体指针 结构体指针作为函数参数,传递的是指向结构体变量的 ...
- 聊聊UI自动化的PageObject设计模式
当我们开发UI自动化测试用例时,需要引用页面中的元素(数据)才能够进行点击(动作)并显示出页面内容.如果我们开发的用例是直接对HTML元素进行操作,则这样的用例无法"应对"页面中U ...
- 安卓记账本开发学习day3
今天发现了新的错误 首先是AS警告杀毒系统对编译运行有影响,我目前只开了火绒,所以只需要在火绒里将SDK文件夹设置为信任即可 第二个错是在编译测试运行的时候,虚拟机能够正常打开,也launch suc ...
- 玩转LiteOS组件:玩转Librws
摘要:Librws是一个跨平台的websocket客户端,使用C语言编写. 本文分享自华为云社区<LiteOS组件尝鲜-玩转Librws>,作者: W922 . 本期小编为大家带来Lite ...