'\" t
.\"     Title: git-contacts
.\"    Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\"      Date: 02/02/2026
.\"    Manual: Git Manual
.\"    Source: Git 2.53.0
.\"  Language: English
.\"
.TH "GIT\-CONTACTS" "1" "02/02/2026" "Git 2\&.53\&.0" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
git-contacts \- List people who might be interested in a set of changes
.SH "SYNOPSIS"
.sp
.nf
\fIgit contacts\fR (<patch>|<range>|<rev>)\&...\:
.fi
.SH "DESCRIPTION"
.sp
Given a set of changes, specified as patch files or revisions, determine people who might be interested in those changes\&. This is done by consulting the history of each patch or revision hunk to find people mentioned by commits which touched the lines of files under consideration\&.
.sp
Input consists of one or more patch files or revision arguments\&. A revision argument can be a range or a single \fI<rev>\fR which is interpreted as \fI<rev>\fR\fB\&.\&.\fR\fBHEAD\fR, thus the same revision arguments are accepted as for \fBgit-format-patch\fR(1)\&. Patch files and revision arguments can be combined in the same invocation\&.
.sp
This command can be useful for determining the list of people with whom to discuss proposed changes, or for finding the list of recipients to Cc: when submitting a patch series via \fBgit\fR \fBsend\-email\fR\&. For the latter case, \fBgit\fR \fBcontacts\fR can be used as the argument to \fBgit\fR \fBsend\-email\fR\*(Aqs \fB\-\-cc\-cmd\fR option\&.
.SH "DISCUSSION"
.sp
\fBgit\fR \fBblame\fR is invoked for each hunk in a patch file or revision\&. For each commit mentioned by \fBgit\fR \fBblame\fR, the commit message is consulted for people who authored, reviewed, signed, acknowledged, or were Cc:\*(Aqd\&. Once the list of participants is known, each person\(cqs relevance is computed by considering how many commits mentioned that person compared with the total number of commits under consideration\&. The final output consists only of participants who exceed a minimum threshold of participation\&.
.SH "OUTPUT"
.sp
For each person of interest, a single line is output, terminated by a newline\&. If the person\(cqs name is known, \(lqName <user@host>\(rq is printed; otherwise only \(lq<user@host>\(rq is printed\&.
.SH "EXAMPLES"
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Consult patch files:
.sp
.if n \{\
.RS 4
.\}
.nf
$ git contacts feature/*\&.patch
.fi
.if n \{\
.RE
.\}
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Revision range:
.sp
.if n \{\
.RS 4
.\}
.nf
$ git contacts R1\&.\&.R2
.fi
.if n \{\
.RE
.\}
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
From a single revision to
\fBHEAD\fR:
.sp
.if n \{\
.RS 4
.\}
.nf
$ git contacts origin
.fi
.if n \{\
.RE
.\}
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Helper for
\fBgit\fR
\fBsend\-email\fR:
.sp
.if n \{\
.RS 4
.\}
.nf
$ git send\-email \-\-cc\-cmd=\*(Aqgit contacts\*(Aq feature/*\&.patch
.fi
.if n \{\
.RE
.\}
.RE
.SH "LIMITATIONS"
.sp
Several conditions controlling a person\(cqs significance are currently hard\-coded, such as minimum participation level (10%), blame date\-limiting (5 years), and \fB\-C\fR level for detecting moved and copied lines (a single \fB\-C\fR)\&. In the future, these conditions may become configurable\&.
.SH "GIT"
.sp
Part of the \fBgit\fR(1) suite
