From: "Dmitry Potapov" <dpotapov@gmail.com>
To: "Peter Valdemar Mørch (Lists)" <4ux6as402@sneakemail.com>
Cc: git@vger.kernel.org
Subject: Re: Considering teaching plumbing to users harmful
Date: Thu, 17 Jul 2008 16:38:34 +0400 [thread overview]
Message-ID: <37fcd2780807170538p50221325n5d57f8491bb1723d@mail.gmail.com> (raw)
In-Reply-To: <487EF519.5070902@sneakemail.com>
On Thu, Jul 17, 2008 at 11:30 AM, "Peter Valdemar Mørch (Lists)"
<4ux6as402@sneakemail.com> wrote:
>
> As a total git newbie (5 days) coming from svn, I *am* bewildered. Even
> sticking to porcelain, it is a feature-rich new tool I have in my hands!
>
> I'm missing clarity about what is porcelain and what is plumbing. `git help`
> shows
>
> "The most commonly used git commands are:" add .. tag.
>
> Is this list exactly the list of porcelain commands? Then say so there.
There are a few other commands that are considered as porcelain, but they
are not so often used or used for very specific purposes, such sending
patches by email. So, you do not have to bother about them right now.
In fact, even this list may be too long to be learned at once. It is
better to proceed step-wise, like this:
=== Getting started ===
1. Creating your repo
git init
git clone
2. Commiting your changes
git add
git commit
There are also git mv, git rm for those who need them.
3. Inspect your changes before committing them
git status
git diff
4. Inspecting history
git log
5. Synchronization with the upstream
git pull
git push
=== More commands ===
6. How to revert my changes?
6.1. reverting uncommitted changes
git checkout file
git checkout HEAD file
6.2. committed but not publish changes
git reset HEAD^
git reset --hard HEAD^
6.3. published changes
git revert
7. Who introduced this change?
git log -S as better alternative to git blame
8. Some useful "tricks"
git grep
git add -p
git diff --cached
git commit --amend
git show
git log -p
=== Working with branches ===
9. Creating branches and tags
git tag
git branch
git checkout
10. Merging is easy
git merge
By the way:
git pull = git fetch + git merge FETCH_HEAD
git merge branch = git pull . branch
11. What is rebase?
When can it be useful?
Advantages and disadvantages.
=== More "advanced" commands ===
12. git safety net
git log -g
13. Find the change that introduced a bug
git bisect
14. Short review other commands:
git gc
git archive
git-cherry-pick
git remote
git format-patch
git apply
git am
===
> Neither `git help diff` nor `git help ls-tree` say whether they are
> porcelain or plumbing commands. `git help diff` mentions git-diff-index,
> which i suspect is plumbing. When I read a man page, it would be nice to
> know whether a command (either the topic of the page or another mentioned
> command) is intended as porcelain or not.
I agree, it is very confusing for beginners. The rule of the thumb that
helped me when I started was that commands with dash in their names are
plumbing (there are a few exceptions though).
Dmitry
next prev parent reply other threads:[~2008-07-17 12:39 UTC|newest]
Thread overview: 114+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-16 17:21 Considering teaching plumbing to users harmful Johannes Schindelin
2008-07-16 17:50 ` Jesper Eskilson
2008-07-16 18:14 ` Johannes Schindelin
2008-07-16 18:19 ` Jesper Eskilson
2008-07-16 18:27 ` Johannes Schindelin
2008-07-16 17:53 ` Avery Pennarun
2008-07-16 18:12 ` Johannes Schindelin
2008-07-16 18:35 ` Avery Pennarun
2008-07-16 20:13 ` Theodore Tso
2008-07-16 21:53 ` Daniel Barkalow
2008-07-17 11:18 ` David Kastrup
2008-07-17 15:52 ` Jakub Narebski
2008-07-17 16:05 ` David Kastrup
2008-07-17 16:18 ` Subversion's do-everything-via-copying paradigm ( was RE: Re: Considering teaching plumbing to users harmful) Craig L. Ching
2008-07-17 21:05 ` David Kastrup
2008-07-17 22:06 ` Craig L. Ching
2008-07-17 22:07 ` Avery Pennarun
2008-07-17 22:11 ` Junio C Hamano
2008-07-17 20:04 ` Considering teaching plumbing to users harmful Jakub Narebski
2008-07-17 20:12 ` Kevin Ballard
2008-07-17 20:26 ` Petr Baudis
2008-07-17 20:40 ` Kevin Ballard
2008-07-17 21:03 ` Jakub Narebski
2008-07-17 21:10 ` Kevin Ballard
2008-07-17 20:34 ` Jakub Narebski
2008-07-17 20:42 ` Kevin Ballard
2008-07-17 20:15 ` Kevin Ballard
2008-07-17 21:02 ` David Kastrup
2008-07-17 22:32 ` Robin Rosenberg
2008-07-18 7:41 ` Dmitry Potapov
2008-07-17 16:11 ` Subversion is actually not so simple (was RE: Considering teaching plumbing to users harmful) Craig L. Ching
2008-07-17 17:37 ` Jakub Narebski
2008-07-17 19:00 ` Considering teaching plumbing to users harmful Daniel Barkalow
2008-07-16 18:18 ` Junio C Hamano
2008-07-16 18:51 ` Avery Pennarun
2008-07-16 18:59 ` Petr Baudis
2008-07-16 19:22 ` Avery Pennarun
2008-07-16 19:09 ` Junio C Hamano
2008-07-16 19:29 ` Avery Pennarun
2008-07-16 19:34 ` Junio C Hamano
2008-07-16 19:46 ` Avery Pennarun
2008-07-16 20:12 ` Junio C Hamano
2008-07-16 22:32 ` Theodore Tso
2008-07-16 22:41 ` Junio C Hamano
2008-07-16 22:53 ` Sean Kelley
2008-07-16 23:17 ` Nigel Magnay
2008-07-17 3:21 ` Stephen Sinclair
2008-07-18 17:02 ` Ping Yin
2008-07-16 22:24 ` Dmitry Potapov
2008-07-16 22:28 ` Johannes Schindelin
2008-07-16 22:49 ` Theodore Tso
2008-07-17 0:25 ` Johannes Schindelin
2008-07-17 2:47 ` Theodore Tso
2008-07-17 14:21 ` Craig L. Ching
2008-07-17 14:51 ` Petr Baudis
2008-07-17 15:57 ` J. Bruce Fields
2008-07-16 21:16 ` david
2008-07-16 21:59 ` Dmitry Potapov
2008-07-16 20:23 ` Stephen R. van den Berg
2008-07-16 20:27 ` Nicolas Pitre
2008-07-16 20:51 ` Junio C Hamano
2008-07-16 23:05 ` Johannes Schindelin
2008-07-16 23:40 ` Junio C Hamano
2008-07-17 0:02 ` Johannes Schindelin
2008-07-17 6:53 ` Junio C Hamano
2008-07-17 15:55 ` J. Bruce Fields
2008-07-17 16:03 ` Karl Hasselström
2008-07-17 18:16 ` Johannes Schindelin
2008-07-17 18:29 ` Junio C Hamano
2008-07-17 18:43 ` Johannes Schindelin
2008-07-17 19:10 ` Junio C Hamano
2008-07-18 14:35 ` J. Bruce Fields
2008-07-18 9:55 ` Addremove equivalent [was: Re: Considering teaching plumbing to users harmful] Michael J Gruber
2008-07-18 20:18 ` Jay Soffian
2008-07-18 23:03 ` Johannes Schindelin
2008-07-20 3:27 ` Addremove equivalent Junio C Hamano
2008-07-20 3:28 ` [PATCH 1/2] builtin-add.c: restructure the code for maintainability Junio C Hamano
2008-07-20 3:29 ` [PATCH 2/2] git-add -a: add all files Junio C Hamano
2008-07-20 3:32 ` [PATCH 3/2] git-add -a: tests Junio C Hamano
2008-07-20 4:20 ` [PATCH 2/2] git-add -a: add all files Tarmigan
2008-07-20 4:28 ` Tarmigan
2008-07-20 10:56 ` Johannes Schindelin
2008-07-20 12:45 ` Jay Soffian
2008-07-20 18:30 ` Junio C Hamano
2008-07-20 20:46 ` Lars Noschinski
2008-07-20 23:59 ` Jeff King
2008-07-21 0:06 ` Junio C Hamano
2008-07-21 0:17 ` Jeff King
2008-07-21 0:22 ` Jeff King
2008-07-21 2:11 ` Jay Soffian
2008-07-20 20:34 ` Sverre Rabbelier
2008-07-16 21:48 ` Considering teaching plumbing to users harmful Dmitry Potapov
2008-07-16 23:19 ` Johannes Schindelin
2008-07-16 22:09 ` Stephan Beyer
2008-07-16 23:22 ` Johannes Schindelin
2008-07-17 1:01 ` Stephan Beyer
2008-07-17 7:30 ` "Peter Valdemar Mørch (Lists)"
2008-07-17 12:38 ` Dmitry Potapov [this message]
2008-07-17 12:55 ` Theodore Tso
2008-07-17 13:35 ` Peter Valdemar Mørch
2008-07-17 14:26 ` Theodore Tso
2008-07-17 16:38 ` Junio C Hamano
2008-07-18 8:19 ` Andreas Ericsson
2008-07-18 18:26 ` Jeff King
2008-07-18 10:14 ` Suggestion: doc restructuring [was: Re: Considering teaching plumbing to users harmful] Michael J Gruber
2008-07-18 18:26 ` Jon Loeliger
2008-07-18 18:52 ` Craig L. Ching
2008-07-18 19:50 ` Suggestion: doc restructuring Junio C Hamano
2008-07-19 1:19 ` Suggestion: doc restructuring [was: Re: Considering teaching plumbing to users harmful] Johannes Schindelin
2008-07-20 8:14 ` Suggestion: doc restructuring Junio C Hamano
2008-07-20 11:02 ` Johannes Schindelin
2008-07-21 6:41 ` Andreas Ericsson
2008-07-21 10:04 ` Johannes Schindelin
2008-07-21 16:22 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=37fcd2780807170538p50221325n5d57f8491bb1723d@mail.gmail.com \
--to=dpotapov@gmail.com \
--cc=4ux6as402@sneakemail.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).