git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: A question about changing remote repo name

From
DDongas <dongas86@gmail.com>
Date
Jan 6, 2010, 03:55 UTC
Message-ID
<60ce8d251001051955x117df3c8t5de7972ce5632c7@mail.gmail.com>
In-Reply-To
<20100105211521.GC2657@gmail.com>
2010/1/6 David Aguilar <davvid@gmail.com>:
Show 16 quoted lines
>
> Hi,
>
> On Tue, Jan 05, 2010 at 12:30:03PM +0800, Dongas wrote:
>> 2010/1/5 Russell Steicke <russellsteicke@gmail.com>:
>> > On Mon, Jan 4, 2010 at 2:45 PM, Dongas <dongas86@gmail.com> wrote:
>>
>> Thanks a lot, Russell.
>> I followed you instruction but it seemed it needs more changes.
>>
>> Execute your steps....
>> Becomes:
>> root@ubuntu:/work/git-repo/free_monkey# tree -a
>
> Just a note: I would recommend against being root.
> You cloned the repo so you should own it.
Thanks for your advices.
Show 40 quoted lines
> More below...
>
>
>> root@ubuntu:/work/git-repo/free_monkey# cat .git/config
>> [core]
>>       repositoryformatversion = 0
>>       filemode = true
>>       bare = false
>>       logallrefupdates = true
>> [remote "karmic"]
>>       url = git@192.168.1.116:free_monkey.git
>>       fetch = +refs/heads/*:refs/remotes/karmic/*
>> [branch "master"]
>>       remote = karmic
>>       merge = refs/heads/master
>>
>> But the result was:
>> root@ubuntu:/work/git-repo/free_monkey# git branch -a
>> * master
>>   karmic/HEAD
>>   origin/master
>> The 'origin/master' was still not changed.
>
>
> A safter alternative would be to leave the "origin" lines in
> place as a duplicate of karmic:
>
> [remote "karmic"]
>        url = git@192.168.1.116:free_monkey.git
>        fetch = +refs/heads/*:refs/karmic/origin/*
>
> [remote "origin"]
>        url = git@192.168.1.116:free_monkey.git
>        fetch = +refs/heads/*:refs/remotes/origin/*
>
>
> At that point you will have two remotes, "karmic" and "origin".
> "git fetch karmic" to get the latest branches.
>
> Finally, "git remote rm origin" to remove all references to it.

It's a good idea. I have tried and it seemed to work. (I also did a few more works to make it better)

Below is the result:
root@ubuntu:/work/git-repo/tmp/free_monkey# git branch -a
* master
  origin/HEAD
  origin/master
root@ubuntu:/work/git-repo/tmp/free_monkey# cat .git/config
[core]
	repositoryformatversion = 0
	filemode = true
	bare = false
	logallrefupdates = true
[remote "origin"]
	url = git@192.168.1.106:free_monkey.git
	fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
	remote = origin
	merge = refs/heads/master
root@ubuntu:/work/git-repo/tmp/free_monkey# git remote add karmic
git@192.168.1.106:free_monkey.git
root@ubuntu:/work/git-repo/tmp/free_monkey# git fetch karmic
From git@192.168.1.106:free_monkey
 * [new branch]      master     -> karmic/master
root@ubuntu:/work/git-repo/tmp/free_monkey# git branch -a
* master
  karmic/master
  origin/HEAD
  origin/master
root@ubuntu:/work/git-repo/tmp/free_monkey# git remote rm origin
root@ubuntu:/work/git-repo/tmp/free_monkey# git branch -a
* master
  karmic/master
However there's a little issue:
root@ubuntu:/work/git-repo/tmp/free_monkey# git pull
fatal: 'origin': unable to chdir or not a git archive
fatal: The remote end hung up unexpectedly
root@ubuntu:/work/git-repo/tmp/free_monkey# grep -wrin 'origin' .git/
root@ubuntu:/work/git-repo/tmp/free_monkey# cat .git/config
[core]
	repositoryformatversion = 0
	filemode = true
	bare = false
	logallrefupdates = true
[branch "master"]
[remote "karmic"]
	url = git@192.168.1.106:free_monkey.git
	fetch = +refs/heads/*:refs/remotes/karmic/*
But 'git pull karmic master' worked well.
root@ubuntu:/work/git-repo/tmp/free_monkey# git pull karmic master
From git@192.168.1.106:free_monkey
 * branch            master     -> FETCH_HEAD
Already up-to-date.
For conveniently, i did a few more steps.
Add two lines below '[branch "master"]':
root@ubuntu:/work/git-repo/tmp/free_monkey# cat .git/config
[core]
	repositoryformatversion = 0
	filemode = true
	bare = false
	logallrefupdates = true
[branch "master"]
	remote = karmic
	merge = refs/heads/master
[remote "karmic"]
	url = git@192.168.1.106:free_monkey.git
	fetch = +refs/heads/*:refs/remotes/karmic/*
Then, 'git pull' worked well.
root@ubuntu:/work/git-repo/tmp/free_monkey# git pull
Already up-to-date.
> That was a while ago (probably over a year ago) and this wasn't
> anybody's itch to scratch in the meantime so nothing every
> materialized.  It think this is only the 2nd time this has come
> up in that whole time.  Sorry, I wasn't able to find the thread.
Thanks for the info.
Show 43 quoted lines
> Here's a nice middle ground --
>
> instead of naming your branch "master" you can call your default
> branch "karmic".
>
> To make it the default for "git clone" then you'll need to push
> your local master branch and call it "karmic" over there:
>
>        git push origin master:karmic
>
> Then, go to that server and change the repo's HEAD entry so that
> it points to karmic instead of master.
>
>        ssh admin@gitbox
>        cd /path/to/repo.git
>        vi HEAD
>
> From then on, everyone who clones the repo will have a "karmic"
> branch by default instead of the master branch.
>
> To get that branch on repos that were cloned before the change:
>
>        git fetch origin
>        git checkout -b karmic origin/karmic
>
>
>
> With this setup you might even want to remove the "master"
> branch altogether since it might be confusing to have both:
>
> Once:
>        git push origin :master
>
> In everyone's repo:
>        git remote prune origin
>
>
> You will need to make sure everyone has either:
>        a) cloned from the new master-less repo
>        b) run the "checkout -b" and "remote prune" commands
>
> Otherwise someone'll likely "git push" the master branch back
> into existence.
Thanks a lot for the alternative way , it looks good.

Regards Dongas

Previous: David AguilarNext: Russell Steicke
Message 9 of 14 in “A question about changing remote repo name”
  1. DongasJan 4, 2010
  2. Miklos VajnaJan 4, 2010
  3. DongasJan 5, 2010
  4. Erik Faye-LundJan 5, 2010
  5. DongasJan 5, 2010
  6. Russell SteickeJan 5, 2010
  7. DongasJan 5, 2010
  8. David AguilarJan 5, 2010
  9. DongasJan 6, 2010
  10. Russell SteickeJan 6, 2010
  11. Johannes SchindelinJan 6, 2010
  12. Russell SteickeJan 7, 2010
  13. Junio C HamanoJan 6, 2010
  14. DongasJan 6, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.