Re: several quick questions
- From
Andreas Ericsson <ae@op5.se>
- Date
- Feb 14, 2006, 17:03 UTC
- Message-ID
- <43F20D4B.3060606@op5.se>
- In-Reply-To
- <43F20532.5000609@iaglans.de>
Nicolas Vilz 'niv' wrote:
Show 14 quoted lines
> Hello everyone, > > i wonder, how i revoke a straight forward merge of two trees... I > actually wanted to be look like somewhere in the git-repository, where > some branches are merged back with the master tree, but i think, that > wasn't "cg-merge -c <tree to merge with the actual one>"... > > my result was that my master tree has now the same sha1-sum as my > development-tree and gitk visualisation differs from that what i saw in > the git-repository. (Several Arrows headed into back into one line...) > > maybe that was because i didn't do anything in my master tree in the > meantime. >
Correct. The "several arrows" thing is when a merge happens (i.e. two simultaneous lines of development crash into one another with surprisingly pleasant results most of the time). When you do
$ git checkout -b topic-branch # work, work, work $ git checkout master $ git pull . topic-branch
git will recognize the merge-base as being the current HEAD and simply sets HEAD to point to that of topic-branch. This is why it's called a fast-forward, since no heavy computing needs to be done to combine the two development tracks.
> And another thing, is there no posibility to get back to some commits or > tags? I realized you can rebranch tags... what, if i want to switch back > to git version 1.1.6 in the git repository? Or a certain commit? >
git reset is your friend.
$ git reset --hard v1.1.6 $ git reset --hard ORIG_HEAD
should do something along the lines of what you want.
> do you have to make a new private branch out of the tag 1.1.6? >
No, you don't, but you can if you wish. It's nifty if you want to fork the development from a particular branch. In your case, if you really, really *want* the arrows pointing to one line, you can do
$ git branch topic-branch HEAD^ # work, work, work $ git checkout master $ git pull . topic-branch
That would create one pretty arrow. When multiple tracks of development (rather than just two) are combined into one it's called an octopus merge. Unless you really know what you're doing, you should try to avoid those for small projects, and doing it just for the pretty arrows is.... well, let's call it "interesting from the behaviour science scholars point of view".
> i used svn and there i could go back some revisions. I haven't found > such a feature in git, yet... but i think i am blind all the time. >
Most likely. I believe at least the reset command is mentioned in the tutorial. I trust you've read it before asking, so something is amiss either with your eyesight or the tutorial.
> I like git very much and every new day I like it more. >
It's a Good Thing. ;)
-- Andreas Ericsson andreas.ericsson@op5.se OP5 AB www.op5.se Tel: +46 8-230225 Fax: +46 8-230231