Re: A question about changing remote repo name
- From
- Dongas <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