threads / discuss / 28951

Git Gems

Subject: Git Gems

## tl;dr

3 messages between Nov 16, 2011 and Nov 18, 2011.

replies: 2people: 3as markdown or json

Hilco Wijbenga· Nov 16, 2011, 23:18 UTC · lore
Hi all,

Just today, I found out about 'git add -p'. I had never even thought of this but, now that I know, I can't imagine life without it. :-) Actually, it's a bit scary to note that the Git devs apparently aren't just telepathic but they can read my thoughts even before I think them. ;-)

All kidding aside, I'm starting to wonder which other Git Gems I don't know about. For me, the list of Git Gems would include Git's Bash command line prompt, 'git add -p', 'git rebase', 'git commit --amend', and 'git-new-workdir'. I realize there are plenty of books and such out there but I'm really just looking for a list of Git commands and/or options that are worth looking into. Finding out more about a particular command/script/option is easy, realizing that a particular one is the one you need is not. Especially, if you don't even know you have a problem.

As an example, 'git rebase' didn't really seem useful until I understood (well, more or less) what it did. Until then, I just naively assumed that merge commits and non-linear history were something you simply had to live with. I'm guessing that, like me, a lot of people come to Git with quite a few assumptions and preconceived notions due to their exposure to other SCM tools. :-(

Cheers, Hilco

Neal Kreitzinger· Nov 18, 2011, 00:49 UTC · re: Hilco Wijbenga · lore

Re: Git Gems

On 11/16/2011 5:18 PM, Hilco Wijbenga wrote:
Show 25 quoted lines
> Hi all,
>
> Just today, I found out about 'git add -p'. I had never even thought
> of this but, now that I know, I can't imagine life without it. :-)
> Actually, it's a bit scary to note that the Git devs apparently aren't
> just telepathic but they can read my thoughts even before I think
> them. ;-)
>
> All kidding aside, I'm starting to wonder which other Git Gems I don't
> know about. For me, the list of Git Gems would include Git's Bash
> command line prompt, 'git add -p', 'git rebase', 'git commit --amend',
> and 'git-new-workdir'. I realize there are plenty of books and such
> out there but I'm really just looking for a list of Git commands
> and/or options that are worth looking into. Finding out more about a
> particular command/script/option is easy, realizing that a particular
> one is the one you need is not. Especially, if you don't even know you
> have a problem.
>
> As an example, 'git rebase' didn't really seem useful until I
> understood (well, more or less) what it did. Until then, I just
> naively assumed that merge commits and non-linear history were
> something you simply had to live with. I'm guessing that, like me, a
> lot of people come to Git with quite a few assumptions and
> preconceived notions due to their exposure to other SCM tools. :-(
>

This book: http://progit.org/ will show you many gems if you take the time to peruse it.

v/r, neal

Ramkumar Ramachandra· Nov 18, 2011, 04:38 UTC · re: Hilco Wijbenga · lore

Re: Git Gems

Hi Hilco,
Hilco Wijbenga wrote:
> [CC: Git Users <git@vger.kernel.org>]

For the record, this is the official Git list: both "developers" and "users" hang out here.

Show 7 quoted lines
> [...]
> As an example, 'git rebase' didn't really seem useful until I
> understood (well, more or less) what it did. Until then, I just
> naively assumed that merge commits and non-linear history were
> something you simply had to live with. I'm guessing that, like me, a
> lot of people come to Git with quite a few assumptions and
> preconceived notions due to their exposure to other SCM tools. :-(

I'm not sure how a listing is going to help; nevertheless, here are a few of the lesser-known features of the top of my head (in no particular order): rerere, attributes, replace refs, filter-branch, blame's -C and -M switches, log's -S switch, custom diff drivers, bundle, submodule, stash, notes, and reflog. [You can find more by digging through the sources]

Which brings us to an interesting aside: unlike many other SCMs which have a definite and finite set of features, git is really just a toolkit that grows everyday- various people use various subsets and write up their own custom scripts to help them automate tasks. The "git rev-list/ git rev-parse/ git cat-file" is an awesome trio to start writing shell scripts with :)

Cheers.
-- Ram

← back to recent threads