# git clone --update ?

2 messages from 2011-01-07 to 2011-01-07. Participants: darxus@chaosreigns.com, Zenaan Harkness.
Thread: https://gitlist.dev/t/26235

## darxus@chaosreigns.com, 2011-01-07 22:54

Subject: git clone --update ?
Message-ID: <20110107225405.GH20411@chaosreigns.com>
URL: https://gitlist.dev/e/20110107225405.GH20411%40chaosreigns.com

```
I'm working on a build script that pulls source from 12 git repos:
http://www.chaosreigns.com/wayland/wayland-build-ubuntu-all.sh

I would like to be able to do the equivalent of:

 rm -rf gtk+; git clone git://git.gnome.org/gtk+ --branch gdk-backend-wayland

Without re-downloading the entire thing.  Even if I made any kind of
modifications to the repo.

One suggestion I've gotten was;

  git checkout gdk-backend-wayland && git fetch git://git.gnome.org/gtk+ gdk-backend-wayland && git reset --hard FETCH_HEAD && git clean -fxd

Possibly replacing the branch name with HEAD if I want the default branch.

It would be nice if, instead, I could just run something like:

  git clone --update git://git.gnome.org/gtk+ --branch gdk-backend-wayland

Bonus points for working if I have not already cloned it.

```

## Zenaan Harkness, 2011-01-07 23:41

Subject: Re: git clone --update ?
Message-ID: <AANLkTimkD6vfDMhJjuwuVrrzVVvd51_ORmp6A4V0JC9L@mail.gmail.com>
URL: https://gitlist.dev/e/AANLkTimkD6vfDMhJjuwuVrrzVVvd51_ORmp6A4V0JC9L%40mail.gmail.com
In-Reply-To: <20110107225405.GH20411@chaosreigns.com>

```
On Sat, Jan 8, 2011 at 09:54,  <Darxus@chaosreigns.com> wrote:
> I'm working on a build script that pulls source from 12 git repos:
> http://www.chaosreigns.com/wayland/wayland-build-ubuntu-all.sh
>
> I would like to be able to do the equivalent of:
>
>  rm -rf gtk+; git clone git://git.gnome.org/gtk+ --branch gdk-backend-wayland
>
> Without re-downloading the entire thing.  Even if I made any kind of
> modifications to the repo.

Are you aware of local cloning? ie:
  git clone ../my-repos/gtk+ --branch gdk-backend-wayland

First of course, you create my-repos/ somewhere, and inside that dir, run
  git clone --bare git://git.gnome.org/$which $which.git
for each of your 12 repos that your build script will work with.

Then whilst in my-repos/, when you need to update from upstream, do:
  for i in *; do cd $i; git fetch; cd ..; done

Your build scripts can clone from your local repos as often as you
like, without ever hitting the server.

But your question suggests you really have not read much git
documentation or experimented much - there is a heap, and lots of it
high quality. Read, do, learn.

Good luck
Zen

```
