| 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 |