threads / discuss / 26235

git clone --update ?

Subject: git clone --update ?

## tl;dr

2 messages between Jan 7, 2011 and Jan 7, 2011.

replies: 1people: 2as markdown or json

darxus@chaosreigns.com· Jan 7, 2011, 22:54 UTC · lore

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· Jan 7, 2011, 23:41 UTC · re: darxus@chaosreigns.com · lore

Re: git clone --update ?

On Sat, Jan 8, 2011 at 09:54,  <Darxus@chaosreigns.com> wrote:
Show 9 quoted lines
> 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

← back to recent threads