Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/motemen/git-unify
Share .git directory among local repositories of same origin
https://github.com/motemen/git-unify
Last synced: 3 months ago
JSON representation
Share .git directory among local repositories of same origin
- Host: GitHub
- URL: https://github.com/motemen/git-unify
- Owner: motemen
- Created: 2013-11-22T12:17:11.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2014-01-24T10:58:41.000Z (almost 11 years ago)
- Last Synced: 2024-05-01T23:30:51.486Z (8 months ago)
- Language: Shell
- Homepage: http://motemen.github.io/git-unify/git-unify.html
- Size: 246 KB
- Stars: 13
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.asciidoc
Awesome Lists containing this project
README
git-unify(1)
===========NAME
----git-unify - Share .git directory among local repositories of same origin
SYNOPSIS
--------
[verse]
'git unify' init
'git unify' deinit
'git unify' clone []
'git unify' submodule-add []
'git unify' submodule-update []
'git unify' shared-dir [--verify]DESCRIPTION
-----------Shares files under .git directory among local repositories to squeeze disk
usage and/or speed up clone speed. Especially useful for example if you
have many repositories that uses same submodules.COMMANDS
--------
init::
Share files (eg. refs, objects) of repository's .git directory under
"$HOME/.shared-git" (by default) so that other local clones of the
same origin can use shared files there. The files are moved to central
and symlink to them are placed under local .git directory.
+
If shared .git directory is already set up and the shared refs are not
fast-forward of local refs, this command will fail. If so, push your local
changes to remote (if any), and run command below to make shared refs
up-to-date.
+
------------
$ git push origin the-branch
$ git unify update-shared-branch the-branch
------------deinit::
Reverts the effect of 'git unify init'. Files under .git directoy are
no longer shared (not symlinked).clone::
Does 'git clone' with shared .git directory used/set up. If the remote
repository is already shared ('git unify init' is done somewhere),
it does not fetches remote directory but instead clones from the
shared .git directory.submodule-add::
Does 'git submodule add' with shared .git directory used/set up.submodule-update::
Does 'git submodule update --init' with shared .git directory used/set up.shared-dir::
Prints shared .git directory for current repository. Exits with non-zero code if '--verify'
is specified and the directory does not exist.SHARING .git DIRECTORIES
------------------------git-unify shares .git/refs, so local repositories of same origin that are
unified shares their branches. Branch updating at one working directory would
affect the other.AUTHOR
------
Written by motemen