git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: What is missing from Git v2.0

From
Javier Domingo Cansino <javierdo1@gmail.com>
Date
Apr 25, 2014, 02:22 UTC
Message-ID
<CALZVapn0gEHc7t2fjk7YGd2o0yfpGLu0JCgUtdREvROC8_mqXg@mail.gmail.com>
In-Reply-To
<20140424195559.GA1336@luc-arch>

Felipe's =======

= The publish tracking branch = I still have problems getting upstream branches correctly configured as to have this introduced, anyway, I suppose it's optional, so nothing to add on that.

By the way, remote branch managing has improved a lot, one of the best things I see for branching and remotes is the "git remote show" command, but I think further work should be done. Help messages FTW!

= Reject non-fast-forward pulls by default = Not having this introduced yet allows newbie people to use git with just 4 commands, without bothering around with fetch and merge and so.

= Use "stage" instead of "index" = Totally agree with this.

= Default aliases = I hate aliases, make scripts more difficult to read and understand. I would instead try to improve knowledge on this feature. I have to agree with David Lang's first message, and

The cherry-pick => pick thing would be the only thing I would see with good eyes, just because it's too long and has a dash.

Juno's ====== The idea about ~/.gitconfig seems incredible simple and effective to me. I would however try to keep it simple, and minimize the form.

Mine
====
I have taught (or tried to) a lot of people Git. And this is some of
the stuff I have seen they have difficulties with:
- Remembering the commands, for example, remembering add, commit push
and pull, which I think we can all agree is the most core and simple
combination of Git commands.
- What command comes for what they need. If I want to share
everything, what should I do?
- Most of them, have real difficulties on remembering the flows. There
are too many commands for the start.

I wouldn't nevertheless suppress any of them, I would rather do a tuto on-the-go.

Here are some ideas I have thought of:

== Command Output== At the moment, there are several commands that don't output any help text, and many others, that although they have become more verbose with the years, they aren't too verbose yet.

One of the things I most recommend to anyone is to run "git status" just before any command (push, commit, add, etc.) to get sure they are doing what they thing they will.

For example, running git add won't tell you what you just added, nor what you could do now. I would put some output there, maybe the git status output or something similar that helps the user to know what just happened.

Git status doesn't say much about remotes, and suggesting pushing if a remote is outdated, would be fantastic.

Checkout command has decreased verbosity from a previous version, where it stated which branch it came from and to which branch it was switching to.

As an extreme thing, I would consider adding a configuration parameter default, core.helptext=True that could switch off all this stuff.

==Running git== This is a very basic idea, and I suppose it isn't too helpful or realistic, but might give someone an idea.

I would first make that running git, just git, tell the user the possibilities he has. I don't know of any power user that uses git to remember the commands. At the moment, git[1] just tells many of the commands available, without any classification, maybe classifying them as "commiting" "branching" and "remote" could help a little.

Regards,
Javier Domingo Cansino
[1] git output:
----------------------------------------------------
javier@frodo:~$ git
usage: git [--version] [--help] [-C <path>] [-c name=value]
           [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
           [-p|--paginate|--no-pager] [--no-replace-objects] [--bare]
           [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
           <command> [<args>]
The most commonly used git commands are:
   add        Add file contents to the index
   bisect     Find by binary search the change that introduced a bug
   branch     List, create, or delete branches
   checkout   Checkout a branch or paths to the working tree
   clone      Clone a repository into a new directory
   commit     Record changes to the repository
   diff       Show changes between commits, commit and working tree, etc
   fetch      Download objects and refs from another repository
   grep       Print lines matching a pattern
   init       Create an empty Git repository or reinitialize an existing one
   log        Show commit logs
   merge      Join two or more development histories together
   mv         Move or rename a file, a directory, or a symlink
   pull       Fetch from and integrate with another repository or a local branch
   push       Update remote refs along with associated objects
   rebase     Forward-port local commits to the updated upstream head
   reset      Reset current HEAD to the specified state
   rm         Remove files from the working tree and from the index
   show       Show various types of objects
   status     Show the working tree status
   tag        Create, list, delete or verify a tag object signed with GPG

'git help -a' and 'git help -g' lists available subcommands and some concept guides. See 'git help <command>' or 'git help <concept>' to read about a specific subcommand or concept. ----------------------------------------------------

Previous: luc.linux@mailoo.orgNext: Felipe Contreras
Message 52 of 77 in “What is missing from Git v2.0”
  1. Felipe ContrerasApr 20, 2014
  2. Felipe ContrerasApr 20, 2014
  3. Sebastian SchuberthApr 21, 2014
  4. Felipe ContrerasApr 21, 2014
  5. Sebastian SchuberthApr 21, 2014
  6. Theodore Ts'oApr 21, 2014
  7. Felipe ContrerasApr 21, 2014
  8. Sebastian SchuberthApr 22, 2014
  9. Felipe ContrerasApr 22, 2014
  10. Junio C HamanoApr 21, 2014
  11. Sebastian SchuberthApr 22, 2014
  12. Felipe ContrerasApr 22, 2014
  13. Junio C HamanoApr 22, 2014
  14. Felipe ContrerasApr 22, 2014
  15. Matthieu MoyApr 22, 2014
  16. Felipe ContrerasApr 22, 2014
  17. Junio C HamanoApr 22, 2014
  18. Theodore Ts'oApr 22, 2014
  19. Felipe ContrerasApr 22, 2014
  20. David KastrupApr 22, 2014
  21. Felipe ContrerasApr 24, 2014
  22. David KastrupApr 24, 2014
  23. Andreas KreyApr 24, 2014
  24. Felipe ContrerasApr 24, 2014
  25. David KastrupApr 24, 2014
  26. David LangApr 22, 2014
  27. Felipe ContrerasApr 24, 2014
  28. David LangApr 24, 2014
  29. Felipe ContrerasApr 24, 2014
  30. James DenholmApr 24, 2014
  31. Felipe ContrerasApr 24, 2014
  32. James DenholmApr 24, 2014
  33. Felipe ContrerasApr 24, 2014
  34. David KastrupApr 24, 2014
  35. Felipe ContrerasApr 24, 2014
  36. David KastrupApr 24, 2014
  37. Felipe ContrerasApr 24, 2014
  38. David LangApr 24, 2014
  39. Theodore Ts'oApr 24, 2014
  40. Stefan BellerApr 24, 2014
  41. tytso@mit.eduApr 24, 2014
  42. Stefan BellerApr 24, 2014
  43. Jonathan NiederApr 24, 2014
  44. Felipe ContrerasApr 24, 2014
  45. Jeff KingApr 24, 2014
  46. Felipe ContrerasApr 24, 2014
  47. Felipe ContrerasApr 24, 2014
  48. Matthieu MoyApr 25, 2014
  49. Philippe VaucherApr 25, 2014
  50. Felipe ContrerasApr 24, 2014
  51. luc.linux@mailoo.orgApr 24, 2014
  52. Javier Domingo CansinoApr 25, 2014
  53. Felipe ContrerasApr 25, 2014
  54. Philippe VaucherApr 25, 2014
  55. Felipe ContrerasApr 25, 2014
  56. Theodore Ts'oApr 25, 2014
  57. Philippe VaucherApr 25, 2014
  58. Theodore Ts'oApr 25, 2014
  59. Philippe VaucherApr 25, 2014
  60. Felipe ContrerasApr 25, 2014
  61. Felipe ContrerasApr 25, 2014
  62. Jeff KingApr 25, 2014
  63. Felipe ContrerasApr 25, 2014
  64. Jeff KingApr 25, 2014
  65. Felipe ContrerasApr 25, 2014
  66. Jeff KingApr 25, 2014
  67. Felipe ContrerasApr 25, 2014
  68. David KastrupApr 25, 2014
  69. Jonathan NiederApr 25, 2014
  70. David KastrupApr 25, 2014
  71. Jonathan NiederApr 25, 2014
  72. Junio C HamanoApr 22, 2014
  73. Felipe ContrerasApr 24, 2014
  74. brian m. carlsonApr 22, 2014
  75. Felipe ContrerasApr 22, 2014
  76. David AguilarApr 22, 2014
  77. Felipe ContrerasApr 22, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.