It's difficult to process 21 commands (which is what is output by default for git when no command is given). They have been re-grouped into 4 groups of 5-6 commands each, which is clearer and easier for new users to process. More advanced commands such as bisect and rebase have also been removed as this should be output for beginners. Signed-off-by: Scott Chacon <schacon@xxxxxxxxx> --- Here is the second version of this patch. Instead of hard-coding all the descriptions, I'm just pulling them from the common-cmds.h file. builtin/help.c | 54 ++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 42 insertions(+), 12 deletions(-) diff --git a/builtin/help.c b/builtin/help.c index 3182a2b..2975b3d 100644 --- a/builtin/help.c +++ b/builtin/help.c @@ -269,23 +269,53 @@ static int git_help_config(const char *var, const char *value, void *cb) return git_default_config(var, value, cb); } -static struct cmdnames main_cmds, other_cmds; - -void list_common_cmds_help(void) +void print_command(const char *s) { - int i, longest = 0; + int i = 0; + int longest = 10; for (i = 0; i < ARRAY_SIZE(common_cmds); i++) { - if (longest < strlen(common_cmds[i].name)) - longest = strlen(common_cmds[i].name); + if (!strcmp(s, common_cmds[i].name)) { + printf(" %s ", common_cmds[i].name); + mput_char(' ', longest - strlen(common_cmds[i].name)); + puts(common_cmds[i].help); + } } +} - puts("The most commonly used git commands are:"); - for (i = 0; i < ARRAY_SIZE(common_cmds); i++) { - printf(" %s ", common_cmds[i].name); - mput_char(' ', longest - strlen(common_cmds[i].name)); - puts(common_cmds[i].help); - } +static struct cmdnames main_cmds, other_cmds; + +void list_common_cmds_help(void) +{ + puts("The most commonly used git commands are:\n"); + + puts("Basic Commands:"); + print_command("init"); + print_command("clone"); + print_command("add"); + print_command("status"); + print_command("commit"); + puts(""); + + puts("Branch Commands:"); + print_command("branch"); + print_command("checkout"); + print_command("merge"); + print_command("tag"); + puts(""); + + puts("History Commands:"); + print_command("log"); + print_command("diff"); + print_command("reset"); + print_command("show"); + puts(""); + + puts("Remote Commands:"); + print_command("remote"); + print_command("fetch"); + print_command("pull"); + print_command("push"); } static int is_git_command(const char *s) -- 1.7.0.1 -- 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