| To: git@vger.kernel.org | |
| Subject: A note from the maintainer | |
| Welcome to the Git development community. | |
| This message is written by the maintainer and talks about how Git | |
| project is managed, and how you can work with it. | |
| The current maintainer is Junio C Hamano <gitster@pobox.com>. Spam | |
| filters learned that legitimate messages come to this address only | |
| from a very few sender addresses that are known to be good, and all | |
| other messages are likely to be spam unless they are also sent to the | |
| mailing list at the same time (i.e. "Reply-all" to the list message | |
| would reach the mailbox, but "Reply" will likely be thrown into the | |
| spam folder), so please do not send a message to this address unless | |
| it is also sent to the mailing list as well. | |
| * Mailing list and the community | |
| The development is primarily done on the Git mailing list. Help | |
| requests, feature proposals, bug reports and patches should be sent to | |
| the list address <git@vger.kernel.org>. You don't have to be | |
| subscribed to send messages. The convention on the list is to keep | |
| everybody involved on Cc:, so it is unnecessary to say "Please Cc: me, | |
| I am not subscribed". | |
| As an anti-spam measure, the mailing list software may reject messages | |
| that are not text/plain and drops them on the floor. If you are a | |
| GMail user, you'd want to make sure "Plain text mode" is checked. | |
| The mailing list, while welcoming non code contributions like bug | |
| reports, mostly discusses updating contents of the source tree to the | |
| (core) Git software, including documentation "git help" gives. | |
| Non-code contributions may have places other than the mailing list | |
| that are more preferrable. See the "other places" section near the | |
| end. | |
| Before sending patches, please read Documentation/SubmittingPatches | |
| and Documentation/CodingGuidelines to familiarize yourself with the | |
| project convention. | |
| If you sent a patch and you did not hear any response from anybody for | |
| several days, it does not necessarily mean that your patch was totally | |
| uninteresting; it may merely mean that it was lost in the noise. | |
| Please do not hesitate to send a reminder message in such a case. | |
| Messages getting lost in the noise may be a sign that those who can | |
| evaluate your patch don't have enough mental/time bandwidth to process | |
| them right at the moment, and it often helps to wait until the list | |
| traffic becomes calmer before sending such a reminder. | |
| The list archive is available at a few public sites: | |
| https://lore.kernel.org/git/ | |
| https://marc.info/?l=git | |
| https://www.spinics.net/lists/git/ | |
| For those who prefer to read it over NNTP: | |
| nntp://nntp.lore.kernel.org/org.kernel.vger.git | |
| nntp://news.public-inbox.org/inbox.comp.version-control.git | |
| nntp://news.gmane.io/gmane.comp.version-control.git | |
| are available. | |
| When you point at a message in a mailing list archive, using its | |
| message ID is often the most robust (if not very friendly) way to do | |
| so, like this: | |
| https://lore.kernel.org/git/Pine.LNX.4.58.0504150753440.7211@ppc970.osdl.org | |
| Often these web interfaces accept the message ID with enclosing <> | |
| stripped (like the above example to point at one of the most important | |
| message in the Git mailing list). | |
| Some members of the development community can sometimes be found on | |
| the #git and #git-devel IRC channels on Libera Chat. Their logs are | |
| available at: | |
| https://colabti.org/ircloggy/git/last | |
| https://colabti.org/ircloggy/git-devel/last | |
| There is a volunteer-run newsletter to serve our community ("Git Rev | |
| News" https://git.github.io/rev_news/). | |
| Git is a member project of Software Freedom Conservancy, a non-profit | |
| organization (https://sfconservancy.org/). To reach a committee of | |
| liaisons to the conservancy, contact them at <git@sfconservancy.org>. | |
| For our expectations on the behaviour of the community participants | |
| towards each other, see CODE_OF_CONDUCT.md at the top level of the source | |
| tree, or: | |
| https://github.com/git/git/blob/master/CODE_OF_CONDUCT.md | |
| * Reporting bugs | |
| When you think git does not behave as you expect, please do not stop | |
| your bug report with just "git does not work". "I used git in this | |
| way, but it did not work" is not much better, neither is "I used git | |
| in this way, and X happend, which is broken". It often is that git is | |
| correct to cause X happen in such a case, and it is your expectation | |
| that is broken. People would not know what other result Y you | |
| expected to see instead of X, if you left it unsaid. | |
| Please remember to always state | |
| - what you wanted to achieve; | |
| - what you did (the version of git and the command sequence to reproduce | |
| the behavior); | |
| - what you saw happen (X above); | |
| - what you expected to see (Y above); and | |
| - how the last two are different. | |
| See https://www.chiark.greenend.org.uk/~sgtatham/bugs.html for further | |
| hints. Our `git bugreport` tool gives you a handy way you can use to | |
| make sure you do not forget these points when filing a bug report. | |
| If you think you found a security-sensitive issue and want to disclose | |
| it to us without announcing it to wider public, please contact us at | |
| our security mailing list <git-security@googlegroups.com>. This is | |
| a closed list that is limited to people who need to know early about | |
| vulnerabilities, including: | |
| - people triaging and fixing reported vulnerabilities | |
| - people operating major git hosting sites with many users | |
| - people packaging and distributing git to large numbers of people | |
| where these issues are discussed without risk of the information | |
| leaking out before we're ready to make public announcements. | |
| * Repositories and documentation. | |
| My public git.git repositories are (mirrored) at: | |
| https://git.kernel.org/pub/scm/git/git.git/ | |
| https://kernel.googlesource.com/pub/scm/git/git | |
| https://repo.or.cz/alt-git.git/ | |
| https://github.com/git/git/ | |
| https://gitlab.com/git-scm/git/ | |
| This one shows not just the main integration branches, but also | |
| individual topics broken out: | |
| https://github.com/gitster/git/ | |
| A few web interfaces are found at: | |
| https://git.kernel.org/pub/scm/git/git.git | |
| https://kernel.googlesource.com/pub/scm/git/git | |
| https://repo.or.cz/w/alt-git.git | |
| Preformatted documentation from the tip of the "master" branch can be | |
| found in: | |
| https://git.kernel.org/pub/scm/git/git-{htmldocs,manpages}.git/ | |
| https://repo.or.cz/git-{htmldocs,manpages}.git/ | |
| https://github.com/gitster/git-{htmldocs,manpages}.git/ | |
| The manual pages formatted in HTML for the tip of "master" can be | |
| viewed online at: | |
| https://git.github.io/htmldocs/git.html | |
| * How various branches are used. | |
| There are four integration branches in the git.git repository that | |
| track the source tree of Git: 'master', 'maint', 'next', and 'seen'. | |
| Commits are almost never made directly to them. Instead, after review | |
| on the mailing list, each new feature or bugfix is applied to its own | |
| topic branch forked from 'master' or 'maint' (or an older base when | |
| fixing an earlier bug), and kept out of 'master' while it is tested. | |
| The quality of topic branches is judged primarily by list discussions. | |
| The 'master' branch holds well-tested changes ready for production and | |
| aims to be more stable than any released version. Feature releases | |
| are cut from its tip and named with two-dotted decimal digits (e.g., | |
| Git 2.56, tagged 'v2.56.0', made on September 28, 2026). | |
| Whenever a feature release is made, 'maint' is forked from 'master'. | |
| Obvious, safe bugfixes for the latest feature release (and occasional | |
| developer aids such as CI updates, but almost never new features) are | |
| merged into it to cut maintenance releases named by incrementing the | |
| third digit (e.g., '2.47.1' for the '2.47' series). Bugfix topics are | |
| usually merged into 'master' before 'maint' to avoid last-minute | |
| issues, though embargoed security fixes may appear in both at the same | |
| time. 'maint' is merged up into 'master', primarily to propagate | |
| release notes forward. | |
| Topic branches in good shape are merged into 'next', where new and | |
| exciting things take place. 'next' generally contains the tip of | |
| 'master' and is expected to work without major breakage while topics | |
| in it are polished to perfection before graduating to 'master'. Being | |
| in 'next' is no guarantee of appearing in any release: flawed commits | |
| or whole topics may be reverted from 'next' (or even from 'master' if | |
| a regression is found late). Because a bug may manifest only in your | |
| unique workflow, please help by building and using 'next' for your | |
| daily work and reporting problems to the mailing list before they | |
| reach 'master'. | |
| The 'seen' branch bundles the remaining topics that the maintainer has | |
| seen and found potentially interesting; please do not read anything | |
| more into a topic being in 'seen', as topics whose ideas do not pan | |
| out are discarded before reaching 'next', just as topics can wither on | |
| the list without support. Contributors can use 'seen' to anticipate | |
| conflicts with others' in-flight topics and coordinate early. Before | |
| sending patches to the list (or via GitGitGadget), it is a good idea | |
| to test your topic in isolation and with temporary merges to 'next' | |
| and 'seen'. | |
| You can run 'git log --oneline --first-parent master..seen' to see | |
| what topics are currently in flight. Its output mentions a 'jch' | |
| branch, an early part of 'seen' that contains all of 'next' and a bit | |
| more, used by the maintainer for his daily work. | |
| 'master' and 'maint' are never rewound, and 'next' is rebuilt from the | |
| tip of 'master' only after a feature release (using the topics that | |
| did not make the cut, possibly ejecting some). Consequently, until a | |
| topic is merged into 'next', updates should replace its patches with | |
| an improved version; once in 'next', updates must come as incremental | |
| patches explaining what reviewers missed and how it was corrected. | |
| * Other people's trees. | |
| Documentation/SubmittingPatches outlines to whom your proposed changes | |
| should be sent. As described in contrib/README, I would delegate fixes | |
| and enhancements in contrib/ area to the primary contributors of them. | |
| Although the following are included in git.git repository, they have their | |
| own authoritative repository and maintainers: | |
| - git-gui/ comes from git-gui project, maintained by Johannes Sixt: | |
| https://github.com/j6t/git-gui | |
| - gitk-git/ comes from gitk project, maintained by Johannes Sixt: | |
| https://github.com/j6t/gitk | |
| - po/ comes from the localization coordinator, Jiang Xin: | |
| https://github.com/git-l10n/git-po/ | |
| When sending proposed updates and fixes to these parts of the system, | |
| please base your patches on these trees, not git.git (the former two | |
| even have different directory structures). | |
| * Other places. | |
| As the Git ecosystem has grown larger over the years, there are | |
| documentation sites and third-party tools that have been created and | |
| maintained by friendly third-parties. Reporting issues with them to | |
| the main mailing list is still welcomed by the list participants, but | |
| most likely you will be asked to contact these third-parties directly. | |
| - git-scm website (https://www.git-scm.com/) is maintained directly | |
| on its GitHub repository and its issues are managed there. | |
| https://github.com/git/git-scm.com/issues | |
| https://github.com/git/git-scm.com/?tab=readme-ov-file#contributing | |
| - Git for Windows (https://gitforwindows.org/) is a project that | |
| packages (core) Git software with some other goodies for the | |
| Windows platform. They manage their own issues list and their | |
| changes are managed directly on GitHub via pull requests, focused | |
| primarily on Windows specific issues and their additions (like | |
| Windows installer). | |
| https://github.com/git-for-windows/git/wiki/How-to-participate | |
| https://github.com/git-for-windows/git/issues | |
| - The online edition of ProGit Book hosted at git-scm.com/book/ is | |
| managed by the Pro Git book folks, and they maintain their work and | |
| issues at their GitHub repository. | |
| https://github.com/progit/progit2/issues | |
| https://github.com/progit/progit2/blob/main/CONTRIBUTING.md |