# Broken Repo

4 messages from 2012-05-07 to 2012-05-07. Participants: Joe Zim, Marcus Karlsson, Jeff King.
Thread: https://gitlist.dev/t/30455

## Joe Zim, 2012-05-07 03:36

Subject: Broken Repo
Message-ID: <4FA74355.3020704@joezimjs.com>
URL: https://gitlist.dev/e/4FA74355.3020704%40joezimjs.com

```
Hi, I'm new here. I'm using Github right now. I have a repository there 
and a local copy on my Windows 7 PC. I made a change, committed it, then 
attempted to push it. I got a strange error that I can't remember. 
Anyway, after several attempts I decided to just delete the local 
repository, restore it from github and try again later. I realize now 
that there were other ways this should have been handled, but right now 
it doesn't matter. I can't figure out how to restore a copy from Github 
and make this renewed repo the master branch. Can anyone give me a 
detailed, step by step answer please?

Thanks,
Joseph Zimmerman

```

## Marcus Karlsson, 2012-05-07 07:39

Subject: Re: Broken Repo
Message-ID: <20120507073713.GA863@hatchepsut.acc.umu.se>
URL: https://gitlist.dev/e/20120507073713.GA863%40hatchepsut.acc.umu.se
In-Reply-To: <4FA74355.3020704@joezimjs.com>

```
On Sun, May 06, 2012 at 10:36:53PM -0500, Joe Zim wrote:
> Hi, I'm new here. I'm using Github right now. I have a repository
> there and a local copy on my Windows 7 PC. I made a change,
> committed it, then attempted to push it. I got a strange error that
> I can't remember. Anyway, after several attempts I decided to just
> delete the local repository, restore it from github and try again
> later. I realize now that there were other ways this should have
> been handled, but right now it doesn't matter. I can't figure out
> how to restore a copy from Github and make this renewed repo the
> master branch. Can anyone give me a detailed, step by step answer
> please?
> 
> Thanks,
> Joseph Zimmerman

You deleted the local repository and want to clone it again from
GitHub right?

You can run 'git clone git@github.com:username/reponame.git' and
that should give you a new local repository cloned after the repository
on GitHub. Just replace username and reponame with the appropriate names
first and you should be up and running.

	Marcus

```

## Jeff King, 2012-05-07 07:49

Subject: Re: Broken Repo
Message-ID: <20120507074917.GE18812@sigill.intra.peff.net>
URL: https://gitlist.dev/e/20120507074917.GE18812%40sigill.intra.peff.net
In-Reply-To: <4FA74355.3020704@joezimjs.com>

```
On Sun, May 06, 2012 at 10:36:53PM -0500, Joe Zim wrote:

> Hi, I'm new here. I'm using Github right now. I have a repository
> there and a local copy on my Windows 7 PC. I made a change, committed
> it, then attempted to push it. I got a strange error that I can't
> remember. Anyway, after several attempts I decided to just delete the
> local repository, restore it from github and try again later. I
> realize now that there were other ways this should have been handled,
> but right now it doesn't matter. I can't figure out how to restore a
> copy from Github and make this renewed repo the master branch. Can
> anyone give me a detailed, step by step answer please?

I don't quite understand your question. You deleted the original
repository, which I assume means you removed the whole working tree. So
can you not "git clone" the original repository again and redo your
work?

Or did you remove only the ".git" directory, leaving your modified
working tree in place? If that is the case, you probably want:

  # turn your directory back into a git repository
  cd $your_project
  git init

  # fetch the existing work again
  git remote add origin $your_remote_url
  git fetch

  # now tell git that we are basing our branch on the upstream master.
  # We must make sure not to use "--hard" here, because that would
  # overwrite the working tree.
  git reset origin/master

At this point you should be able to use "git status" to see your
changes, and commit as normal. You might also want to run:

  git branch --set-upstream master origin/master

to make "git pull" work without any arguments. This setup is done
automatically by "git clone", but not by the manual init+fetch we did
above.

-Peff

```

## Joe Zim, 2012-05-07 18:12

Subject: Re: Broken Repo
Message-ID: <4FA81098.3000208@joezimjs.com>
URL: https://gitlist.dev/e/4FA81098.3000208%40joezimjs.com
In-Reply-To: <20120507074917.GE18812@sigill.intra.peff.net>

```
Thanks for the reply guys. It's fixed now.

On 5/7/2012 2:49 AM, Jeff King wrote:
> On Sun, May 06, 2012 at 10:36:53PM -0500, Joe Zim wrote:
>
>> Hi, I'm new here. I'm using Github right now. I have a repository
>> there and a local copy on my Windows 7 PC. I made a change, committed
>> it, then attempted to push it. I got a strange error that I can't
>> remember. Anyway, after several attempts I decided to just delete the
>> local repository, restore it from github and try again later. I
>> realize now that there were other ways this should have been handled,
>> but right now it doesn't matter. I can't figure out how to restore a
>> copy from Github and make this renewed repo the master branch. Can
>> anyone give me a detailed, step by step answer please?
> I don't quite understand your question. You deleted the original
> repository, which I assume means you removed the whole working tree. So
> can you not "git clone" the original repository again and redo your
> work?
>
> Or did you remove only the ".git" directory, leaving your modified
> working tree in place? If that is the case, you probably want:
>
>    # turn your directory back into a git repository
>    cd $your_project
>    git init
>
>    # fetch the existing work again
>    git remote add origin $your_remote_url
>    git fetch
>
>    # now tell git that we are basing our branch on the upstream master.
>    # We must make sure not to use "--hard" here, because that would
>    # overwrite the working tree.
>    git reset origin/master
>
> At this point you should be able to use "git status" to see your
> changes, and commit as normal. You might also want to run:
>
>    git branch --set-upstream master origin/master
>
> to make "git pull" work without any arguments. This setup is done
> automatically by "git clone", but not by the manual init+fetch we did
> above.
>
> -Peff

```
