2010/1/6 David Aguilar <davvid@xxxxxxxxx>: > > Hi, > > On Tue, Jan 05, 2010 at 12:30:03PM +0800, Dongas wrote: >> 2010/1/5 Russell Steicke <russellsteicke@xxxxxxxxx>: >> > On Mon, Jan 4, 2010 at 2:45 PM, Dongas <dongas86@xxxxxxxxx> 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. > 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@xxxxxxxxxxxxx: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@xxxxxxxxxxxxx:free_monkey.git > fetch = +refs/heads/*:refs/karmic/origin/* > > [remote "origin"] > url = git@xxxxxxxxxxxxx: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@xxxxxxxxxxxxx: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@xxxxxxxxxxxxx:free_monkey.git root@ubuntu:/work/git-repo/tmp/free_monkey# git fetch karmic >From git@xxxxxxxxxxxxx: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@xxxxxxxxxxxxx: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@xxxxxxxxxxxxx: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@xxxxxxxxxxxxx: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. > 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 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html