From: Olaf Hering <olaf@aepfle.de>
To: git@vger.kernel.org
Subject: Re: how to reduce disk usage for large .git dirs?
Date: Thu, 13 Nov 2014 16:44:57 +0100 [thread overview]
Message-ID: <20141113154457.GA31624@aepfle.de> (raw)
In-Reply-To: <20141113111444.GA15503@aepfle.de>
On Thu, Nov 13, Olaf Hering wrote:
> So how can I reduce the disk usage needed for the four .git dirs above?
> I looked around in the docs that came with my git-2.1.3 package, but
> found nothing that answers my question. Maybe we can workout something
> and add it to one of the existing docs.
While playing around with this I made some notes, this is the result:
Manage multiple branches as separate copies
To preserve disk space for each clone, use a master copy of the reop and do
local clones from such copy of a remote repository.
First clone the remote repository as usual. Then create a local branch for
each remote branch that is supposed to be worked on:
# git clone git://host/repo.git repo-master
# cd repo-master
# git checkout -b branchA origin/branchA
# git checkout -b branchB origin/branchB
# cd -
Now clone each work branch into its own directory. The work dir references the
master repo. All changes come from and go into this repo, instead of the
remote repo.
# git clone -l -b branchA repo-master repo-branchA
# git clone -l -b branchB repo-master repo-branchB
To make changs in a work dir, commit as usual. The changes will be pushed from
the work copy into the local master repo. Its required to have some other
branch than branchA active in repo-master, or push from work copy to
repo-master will fail.
# cd repo-master
# git checkout master
# cd -
# cd repo-branchA
# git commit -avs
# git push origin branchA
# cd -
To publish the outstanding changes its required to do this from the master
repo. First checkout the work branch, then pull the local changes and finally
push them to the remote repo.
# cd repo-master
# git checkout branchA
# git pull
# git push origin branchA
# cd -
To receive changes from the remote repo its required to do this from the
master repo. First checkout the work branch, then pull the outstanding remote
changes into the local branch. And finally pull them into the work dir.
# cd repo-master
# git fetch --all (optional)
# git checkout branchB
# git pull
# cd -
# cd repo-branchB
# git pull
# cd -
# vim: set tw=72 et
next prev parent reply other threads:[~2014-11-13 15:45 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-13 11:14 how to reduce disk usage for large .git dirs? Olaf Hering
2014-11-13 11:49 ` Fredrik Gustafsson
2014-11-13 12:03 ` Olaf Hering
2014-11-14 12:32 ` Jakub Narębski
2014-11-13 12:02 ` Roger Gammans
2014-11-13 12:21 ` Olaf Hering
2014-11-13 12:09 ` Duy Nguyen
2014-11-13 15:44 ` Olaf Hering [this message]
2014-11-13 16:03 ` Fredrik Gustafsson
2014-11-13 16:08 ` Johan Herland
2014-11-13 20:15 ` Jeff King
2014-11-14 10:14 ` Olaf Hering
2014-11-14 10:24 ` Fredrik Gustafsson
2014-11-14 10:30 ` Olaf Hering
2014-11-14 10:54 ` Olaf Hering
2014-11-14 11:24 ` Olaf Hering
2014-11-14 15:06 ` Andreas Schwab
2014-11-25 14:32 ` Olaf Hering
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20141113154457.GA31624@aepfle.de \
--to=olaf@aepfle.de \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).