Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/twosigma/git-meta
Repository for the git-meta project -- build your own monorepo using Git submodules
https://github.com/twosigma/git-meta
git git-meta monorepo repository
Last synced: about 2 hours ago
JSON representation
Repository for the git-meta project -- build your own monorepo using Git submodules
- Host: GitHub
- URL: https://github.com/twosigma/git-meta
- Owner: twosigma
- License: bsd-3-clause
- Created: 2016-02-02T15:01:24.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2023-01-23T01:23:47.000Z (almost 2 years ago)
- Last Synced: 2024-04-23T14:10:47.649Z (7 months ago)
- Topics: git, git-meta, monorepo, repository
- Language: JavaScript
- Homepage: http://twosigma.github.io/git-meta
- Size: 3.88 MB
- Stars: 217
- Watchers: 22
- Forks: 50
- Open Issues: 112
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Build Status](https://travis-ci.org/twosigma/git-meta.svg?branch=master)](https://travis-ci.org/twosigma/git-meta)
# What is git-meta?
Git-meta allows developers to work with extremely large codebases --
performance only degrades very slowly when physical size, number of
files, number of contributors increases, or the depth of history grows.
You can use granular ACLs with git-meta to help refine the scope of work.
Users only need to clone the subsets of the code that they need, yet they
can still make atomic commits across the entire codebase. Development and
collaboration are done mostly using normal Git commands; we provide a Git
plug-in for ease-of-use.## A little more detail
Git-meta both describes an architecture and provides a set of tools to
facilitate the implementation of a *mono-repo* and attendant workflows. Aside
from the ability to install the tools provided in this repository, git-meta
requires only Git. Git-meta is not tied to any specific Git hosting solution,
and does not provide operations that are hosting-solution-specific, such as the
ability to create new (server-side) repositories.A detailed description of the architecture of Git-meta is provided in
[doc/architecture.md](doc/architecture.md).# Getting Started
## Installation
To install the git-meta plugin:
```bash
$ git clone https://github.com/twosigma/git-meta.git
$ cd git-meta/node
$ npm install -g
```## Quick Start / Basic Usage
### Clone
Clone your organization's meta-repository as you normally would with Git:
```bash
$ git clone http://example.com/my-meta-repo.git meta
$ cd meta
````At this point, your working directory is likely full of empty directories where
sub-repos are mounted. Open the one(s) you're interested in working on and
create out a feature branch to work on:```bash
$ git meta open my-repo
$ git meta checkout -b my-feature
```Now, change a file:
```bash
$ cd my-repo
$ echo "new work" >> some-file
```Make a commit:
```bash
$ git meta commit -a -m "I made a change."
```And push your change back upstream:
```bash
$ git meta push origin my-feature
```# Documentation
## User Guide
Run `git meta --help` to see information about git-meta commands, or see the
user guide at [doc/user-guide.md](doc/user-guide.md) for more information.## Administration
To learn how to set up and maintain a mono-repo using git-meta, please see:
[doc/administration.md](doc/administration.md).## Architecture
A detailed description of the architecture of Git meta is provided in
[doc/architecture.md](doc/architecture.md).