287 lines
12 KiB
Plaintext
287 lines
12 KiB
Plaintext
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
|