Version control systems
Marc Weber
marco-oweber at gmx.de
Thu Aug 21 23:34:07 EDT 2008
Isaac see third
> FWIW, I started a wiki page that tries a direct comparison between Darcs and
> Git:
>
> http://hackage.haskell.org/trac/ghc/wiki/GitForDarcsUsers
>
> Some mappings are simple, some are more complicated and will require
> adopting a different workflow. I still recommend reading a tutorial, but
> this cheat sheet should be a good start if you don't want to spend much time
> to learn Git just yet. Where no directly corresponding command exists or
> emulating it would be too messy, I try to hint towards other work flows.
>
> I encourage everyone to add useful tips and examples both from users who
> already use Git and later on, once we have gathered more experience. I
> believe that Git has some features which can improve our productivity and
> I'd like this page to also collect tips how to do so.
Hi Thomas: Great work! There is not much I could add (although I've used
git during the last weeks quite often..)
However I'm missing four small tips:
first man git-rev-parse (or git rev-parse help)
HEAD HEAD^ HEAD^^ ..
is equal to
HEAD HEAD~1 HEAD~2 ..>
So to drop one of the last ten commits (don't remember which one)
git rebase -i HEAD~10 ...
second : you forgot to mention gitk. It helps you getting an overview
about when which branches have been created
You can use google pictures search to see how it looks like or just play
around (try the script in my other post)..
You can have a look at the history and branches easily.. You can even
highlight commits by changes made to filepath (must be relative to repo
path!) or by adding/ removing strings etc..
And it's a nice tool to just keep all hashes in memory in case you mess
up your repo by accident :-)
But recent gitk can do more. When getting some conflicts on git
merge or git rebase gitk --merge will show you all commits
causing this conflict.
third: #git on freenode.. I bet you'll get help there as well..
I got the last tip there as well
< doener> MarcWeber: you could, for example, do "git log or git rev-list or gitk --left-right --cherry-pick A...B"
lists all commits beeing present on the one or the other branch,
but not in both
4th: You should know one thing about git history
There used to be no difference between
git-log (now depreceated, does no longer work in the git git version)
and
git log
Thus
git log --help
= git-log --help
= man git-log (more convinient to type)
The only execption: git-clone doesn't work in all cases, git clone does (?)
(Don't ask me why)
maybe
git show commit-id:file is of interest as well (you told about git show)
Sincerly
Marc Weber
More information about the Glasgow-haskell-users
mailing list