In the last 13 years of discussions virtually *everyone* has agreed that the term "the index" is not a good approximation to how most users perceive and utilize this feature. For a summary of the discssions see my blog post [1]. This is particularly true of newcomers, which is why everyone that teaches git uses the term "staging area". Among all the proposals for a better name "staging area" is by far the one with the most consensus. Everyone except two people agreed that "the index" is not a good term. All non-official documentation already uses the term "staging area" [2] [3] [4], including what is considered by most people the best documentation out there: the Pro Git book. There is absolutely no reason not to start using the term "staging area" officially. Let's start by making the staging area a first-class citizen and making 'git stage' a prominent command, similar to 'git branch'. Additionally add 'git unstage' too. Only *one* person expressed discontent with the term "staging area". In favor: * Felipe Contreras * Scott Chacon * Jonathan Nieder * Matthieu Moy * Jeff King * Miles Bader * Ævar Arnfjörð Bjarmason * Jay Soffian * Pete Harlan * Aghiles * Piotr Krukowiecki * Phil Hord * Victor Engmark * David (bouncingcats) * Alexey Feldgendler * Alexei Sholik * Zbigniew Jędrzejewski-Szmek * Sebastien Douche * Thiago Farina * Mark Lodato * Philip Oakley * William Swanson * Ping Yin * Hilco Wijbenga * Lars Vogel * David A. Wheeler [1] https://felipec.wordpress.com/2021/08/10/git-staging-area-rename/ [2] https://git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository [3] https://www.atlassian.com/git/tutorials/saving-changes [4] https://coderefinery.github.io/git-intro/04-staging-area/ Felipe Contreras (7): stage: add proper 'stage' command stage: add helper to run commands stage: add 'add' subcommand stage: add 'remove' subcommand unstage: add 'unstage' command stage: add 'diff' subcommand stage: add 'edit' command Documentation/git-stage.txt | 38 ++++++- Documentation/git-unstage.txt | 25 +++++ Makefile | 2 +- builtin.h | 2 + builtin/stage.c | 147 +++++++++++++++++++++++++ contrib/completion/git-completion.bash | 5 + git.c | 3 +- t/t3710-stage.sh | 51 +++++++++ 8 files changed, 267 insertions(+), 6 deletions(-) create mode 100644 Documentation/git-unstage.txt create mode 100644 builtin/stage.c create mode 100755 t/t3710-stage.sh -- 2.32.0.48.g096519100f