| Server IP : 88.99.149.37 / Your IP : 216.73.216.141 Web Server : nginx/1.31.2 System : Linux server-88-99-149-37 6.12.0-124.56.5.el10_1.x86_64 #1 SMP PREEMPT_DYNAMIC Fri May 15 06:12:08 EDT 2026 x86_64 User : muralimurth ( 1015) PHP Version : 8.4.23 Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /proc/1/cwd/proc/1/task/1/root/usr/share/doc/git/ |
Upload File : |
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="generator" content="AsciiDoc 10.2.0" />
<title>git-refs(1)</title>
<style type="text/css">
/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
/* Default font. */
body {
font-family: Georgia,serif;
}
/* Title font. */
h1, h2, h3, h4, h5, h6,
div.title, caption.title,
thead, p.table.header,
#toctitle,
#author, #revnumber, #revdate, #revremark,
#footer {
font-family: Arial,Helvetica,sans-serif;
}
body {
margin: 1em 5% 1em 5%;
}
a {
color: blue;
text-decoration: underline;
}
a:visited {
color: fuchsia;
}
em {
font-style: italic;
color: navy;
}
strong {
font-weight: bold;
color: #083194;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
}
h1, h2, h3 {
border-bottom: 2px solid silver;
}
h2 {
padding-top: 0.5em;
}
h3 {
float: left;
}
h3 + * {
clear: left;
}
h5 {
font-size: 1.0em;
}
div.sectionbody {
margin-left: 0;
}
hr {
border: 1px solid silver;
}
p {
margin-top: 0.5em;
margin-bottom: 0.5em;
}
ul, ol, li > p {
margin-top: 0;
}
ul > li { color: #aaa; }
ul > li > * { color: black; }
.monospaced, code, pre {
font-family: "Courier New", Courier, monospace;
font-size: inherit;
color: navy;
padding: 0;
margin: 0;
}
pre {
white-space: pre-wrap;
}
#author {
color: #527bbd;
font-weight: bold;
font-size: 1.1em;
}
#email {
}
#revnumber, #revdate, #revremark {
}
#footer {
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
margin-top: 4.0em;
}
#footer-text {
float: left;
padding-bottom: 0.5em;
}
#footer-badges {
float: right;
padding-bottom: 0.5em;
}
#preamble {
margin-top: 1.5em;
margin-bottom: 1.5em;
}
div.imageblock, div.exampleblock, div.verseblock,
div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
div.admonitionblock {
margin-top: 1.0em;
margin-bottom: 1.5em;
}
div.admonitionblock {
margin-top: 2.0em;
margin-bottom: 2.0em;
margin-right: 10%;
color: #606060;
}
div.content { /* Block element content. */
padding: 0;
}
/* Block element titles. */
div.title, caption.title {
color: #527bbd;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
margin-bottom: 0.5em;
}
div.title + * {
margin-top: 0;
}
td div.title:first-child {
margin-top: 0.0em;
}
div.content div.title:first-child {
margin-top: 0.0em;
}
div.content + div.title {
margin-top: 0.0em;
}
div.sidebarblock > div.content {
background: #ffffee;
border: 1px solid #dddddd;
border-left: 4px solid #f0f0f0;
padding: 0.5em;
}
div.listingblock > div.content {
border: 1px solid #dddddd;
border-left: 5px solid #f0f0f0;
background: #f8f8f8;
padding: 0.5em;
}
div.quoteblock, div.verseblock {
padding-left: 1.0em;
margin-left: 1.0em;
margin-right: 10%;
border-left: 5px solid #f0f0f0;
color: #888;
}
div.quoteblock > div.attribution {
padding-top: 0.5em;
text-align: right;
}
div.verseblock > pre.content {
font-family: inherit;
font-size: inherit;
}
div.verseblock > div.attribution {
padding-top: 0.75em;
text-align: left;
}
/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
div.verseblock + div.attribution {
text-align: left;
}
div.admonitionblock .icon {
vertical-align: top;
font-size: 1.1em;
font-weight: bold;
text-decoration: underline;
color: #527bbd;
padding-right: 0.5em;
}
div.admonitionblock td.content {
padding-left: 0.5em;
border-left: 3px solid #dddddd;
}
div.exampleblock > div.content {
border-left: 3px solid #dddddd;
padding-left: 0.5em;
}
div.imageblock div.content { padding-left: 0; }
span.image img { border-style: none; vertical-align: text-bottom; }
a.image:visited { color: white; }
dl {
margin-top: 0.8em;
margin-bottom: 0.8em;
}
dt {
margin-top: 0.5em;
margin-bottom: 0;
font-style: normal;
color: navy;
}
dd > *:first-child {
margin-top: 0.1em;
}
ul, ol {
list-style-position: outside;
}
ol.arabic {
list-style-type: decimal;
}
ol.loweralpha {
list-style-type: lower-alpha;
}
ol.upperalpha {
list-style-type: upper-alpha;
}
ol.lowerroman {
list-style-type: lower-roman;
}
ol.upperroman {
list-style-type: upper-roman;
}
div.compact ul, div.compact ol,
div.compact p, div.compact p,
div.compact div, div.compact div {
margin-top: 0.1em;
margin-bottom: 0.1em;
}
tfoot {
font-weight: bold;
}
td > div.verse {
white-space: pre;
}
div.hdlist {
margin-top: 0.8em;
margin-bottom: 0.8em;
}
div.hdlist tr {
padding-bottom: 15px;
}
dt.hdlist1.strong, td.hdlist1.strong {
font-weight: bold;
}
td.hdlist1 {
vertical-align: top;
font-style: normal;
padding-right: 0.8em;
color: navy;
}
td.hdlist2 {
vertical-align: top;
}
div.hdlist.compact tr {
margin: 0;
padding-bottom: 0;
}
.comment {
background: yellow;
}
.footnote, .footnoteref {
font-size: 0.8em;
}
span.footnote, span.footnoteref {
vertical-align: super;
}
#footnotes {
margin: 20px 0 20px 0;
padding: 7px 0 0 0;
}
#footnotes div.footnote {
margin: 0 0 5px 0;
}
#footnotes hr {
border: none;
border-top: 1px solid silver;
height: 1px;
text-align: left;
margin-left: 0;
width: 20%;
min-width: 100px;
}
div.colist td {
padding-right: 0.5em;
padding-bottom: 0.3em;
vertical-align: top;
}
div.colist td img {
margin-top: 0.3em;
}
@media print {
#footer-badges { display: none; }
}
#toc {
margin-bottom: 2.5em;
}
#toctitle {
color: #527bbd;
font-size: 1.1em;
font-weight: bold;
margin-top: 1.0em;
margin-bottom: 0.1em;
}
div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
margin-top: 0;
margin-bottom: 0;
}
div.toclevel2 {
margin-left: 2em;
font-size: 0.9em;
}
div.toclevel3 {
margin-left: 4em;
font-size: 0.9em;
}
div.toclevel4 {
margin-left: 6em;
font-size: 0.9em;
}
span.aqua { color: aqua; }
span.black { color: black; }
span.blue { color: blue; }
span.fuchsia { color: fuchsia; }
span.gray { color: gray; }
span.green { color: green; }
span.lime { color: lime; }
span.maroon { color: maroon; }
span.navy { color: navy; }
span.olive { color: olive; }
span.purple { color: purple; }
span.red { color: red; }
span.silver { color: silver; }
span.teal { color: teal; }
span.white { color: white; }
span.yellow { color: yellow; }
span.aqua-background { background: aqua; }
span.black-background { background: black; }
span.blue-background { background: blue; }
span.fuchsia-background { background: fuchsia; }
span.gray-background { background: gray; }
span.green-background { background: green; }
span.lime-background { background: lime; }
span.maroon-background { background: maroon; }
span.navy-background { background: navy; }
span.olive-background { background: olive; }
span.purple-background { background: purple; }
span.red-background { background: red; }
span.silver-background { background: silver; }
span.teal-background { background: teal; }
span.white-background { background: white; }
span.yellow-background { background: yellow; }
span.big { font-size: 2em; }
span.small { font-size: 0.6em; }
span.underline { text-decoration: underline; }
span.overline { text-decoration: overline; }
span.line-through { text-decoration: line-through; }
div.unbreakable { page-break-inside: avoid; }
/*
* xhtml11 specific
*
* */
div.tableblock {
margin-top: 1.0em;
margin-bottom: 1.5em;
}
div.tableblock > table {
border: 3px solid #527bbd;
}
thead, p.table.header {
font-weight: bold;
color: #527bbd;
}
p.table {
margin-top: 0;
}
/* Because the table frame attribute is overridden by CSS in most browsers. */
div.tableblock > table[frame="void"] {
border-style: none;
}
div.tableblock > table[frame="hsides"] {
border-left-style: none;
border-right-style: none;
}
div.tableblock > table[frame="vsides"] {
border-top-style: none;
border-bottom-style: none;
}
/*
* html5 specific
*
* */
table.tableblock {
margin-top: 1.0em;
margin-bottom: 1.5em;
}
thead, p.tableblock.header {
font-weight: bold;
color: #527bbd;
}
p.tableblock {
margin-top: 0;
}
table.tableblock {
border-width: 3px;
border-spacing: 0px;
border-style: solid;
border-color: #527bbd;
border-collapse: collapse;
}
th.tableblock, td.tableblock {
border-width: 1px;
padding: 4px;
border-style: solid;
border-color: #527bbd;
}
table.tableblock.frame-topbot {
border-left-style: hidden;
border-right-style: hidden;
}
table.tableblock.frame-sides {
border-top-style: hidden;
border-bottom-style: hidden;
}
table.tableblock.frame-none {
border-style: hidden;
}
th.tableblock.halign-left, td.tableblock.halign-left {
text-align: left;
}
th.tableblock.halign-center, td.tableblock.halign-center {
text-align: center;
}
th.tableblock.halign-right, td.tableblock.halign-right {
text-align: right;
}
th.tableblock.valign-top, td.tableblock.valign-top {
vertical-align: top;
}
th.tableblock.valign-middle, td.tableblock.valign-middle {
vertical-align: middle;
}
th.tableblock.valign-bottom, td.tableblock.valign-bottom {
vertical-align: bottom;
}
/*
* manpage specific
*
* */
body.manpage h1 {
padding-top: 0.5em;
padding-bottom: 0.5em;
border-top: 2px solid silver;
border-bottom: 2px solid silver;
}
body.manpage h2 {
border-style: none;
}
body.manpage div.sectionbody {
margin-left: 3em;
}
@media print {
body.manpage div#toc { display: none; }
}
</style>
<script type="text/javascript">
/*<+'])');
// Function that scans the DOM tree for header elements (the DOM2
// nodeIterator API would be a better technique but not supported by all
// browsers).
var iterate = function (el) {
for (var i = el.firstChild; i != null; i = i.nextSibling) {
if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
var mo = re.exec(i.tagName);
if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
}
iterate(i);
}
}
}
iterate(el);
return result;
}
var toc = document.getElementById("toc");
if (!toc) {
return;
}
// Delete existing TOC entries in case we're reloading the TOC.
var tocEntriesToRemove = [];
var i;
for (i = 0; i < toc.childNodes.length; i++) {
var entry = toc.childNodes[i];
if (entry.nodeName.toLowerCase() == 'div'
&& entry.getAttribute("class")
&& entry.getAttribute("class").match(/^toclevel/))
tocEntriesToRemove.push(entry);
}
for (i = 0; i < tocEntriesToRemove.length; i++) {
toc.removeChild(tocEntriesToRemove[i]);
}
// Rebuild TOC entries.
var entries = tocEntries(document.getElementById("content"), toclevels);
for (var i = 0; i < entries.length; ++i) {
var entry = entries[i];
if (entry.element.id == "")
entry.element.id = "_toc_" + i;
var a = document.createElement("a");
a.href = "#" + entry.element.id;
a.appendChild(document.createTextNode(entry.text));
var div = document.createElement("div");
div.appendChild(a);
div.className = "toclevel" + entry.toclevel;
toc.appendChild(div);
}
if (entries.length == 0)
toc.parentNode.removeChild(toc);
},
/////////////////////////////////////////////////////////////////////
// Footnotes generator
/////////////////////////////////////////////////////////////////////
/* Based on footnote generation code from:
* http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
*/
footnotes: function () {
// Delete existing footnote entries in case we're reloading the footnodes.
var i;
var noteholder = document.getElementById("footnotes");
if (!noteholder) {
return;
}
var entriesToRemove = [];
for (i = 0; i < noteholder.childNodes.length; i++) {
var entry = noteholder.childNodes[i];
if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
entriesToRemove.push(entry);
}
for (i = 0; i < entriesToRemove.length; i++) {
noteholder.removeChild(entriesToRemove[i]);
}
// Rebuild footnote entries.
var cont = document.getElementById("content");
var spans = cont.getElementsByTagName("span");
var refs = {};
var n = 0;
for (i=0; i<spans.length; i++) {
if (spans[i].className == "footnote") {
n++;
var note = spans[i].getAttribute("data-note");
if (!note) {
// Use [\s\S] in place of . so multi-line matches work.
// Because JavaScript has no s (dotall) regex flag.
note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
spans[i].innerHTML =
"[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
"' title='View footnote' class='footnote'>" + n + "</a>]";
spans[i].setAttribute("data-note", note);
}
noteholder.innerHTML +=
"<div class='footnote' id='_footnote_" + n + "'>" +
"<a href='#_footnoteref_" + n + "' title='Return to text'>" +
n + "</a>. " + note + "</div>";
var id =spans[i].getAttribute("id");
if (id != null) refs["#"+id] = n;
}
}
if (n == 0)
noteholder.parentNode.removeChild(noteholder);
else {
// Process footnoterefs.
for (i=0; i<spans.length; i++) {
if (spans[i].className == "footnoteref") {
var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
href = href.match(/#.*/)[0]; // Because IE return full URL.
n = refs[href];
spans[i].innerHTML =
"[<a href='#_footnote_" + n +
"' title='View footnote' class='footnote'>" + n + "</a>]";
}
}
}
},
install: function(toclevels) {
var timerId;
function reinstall() {
asciidoc.footnotes();
if (toclevels) {
asciidoc.toc(toclevels);
}
}
function reinstallAndRemoveTimer() {
clearInterval(timerId);
reinstall();
}
timerId = setInterval(reinstall, 500);
if (document.addEventListener)
document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
else
window.onload = reinstallAndRemoveTimer;
}
}
asciidoc.install();
/*]]>*/
</script>
</head>
<body class="manpage">
<div id="header">
<h1>
git-refs(1) Manual Page
</h1>
<h2>NAME</h2>
<div class="sectionbody">
<p>git-refs -
Low-level access to refs
</p>
</div>
</div>
<div id="content">
<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="verseblock">
<pre class="content"><code>git</code> <code>refs</code> <code>migrate</code> <code>--ref-format=</code><em><format></em> [<code>--no-reflog</code>] [<code>--dry-run</code>]
<code>git</code> <code>refs</code> <code>verify</code> [<code>--strict</code>] [<code>--verbose</code>]
<code>git</code> <code>refs</code> <code>list</code> [<code>--count=</code><em><count></em>] [<code>--shell</code>|<code>--perl</code>|<code>--python</code>|<code>--tcl</code>]
[(<code>--sort=</code><em><key></em>)<span>…]</span> [<code>--format=</code><em><format></em>]
[<code>--include-root-refs</code>] [<code>--points-at=</code><em><object></em>]
[<code>--merged</code>[<code>=</code><em><object></em>]] [<code>--no-merged</code>[<code>=</code><em><object></em>]]
[<code>--contains</code>[<code>=</code><em><object></em>]] [<code>--no-contains</code>[<code>=</code><em><object></em>]]
[(<code>--exclude=</code><em><pattern></em>)<span>…]</span> [<code>--start-after=</code><em><marker></em>]
[ <code>--stdin</code> | (<em><pattern></em><code>…</code>)]
<code>git</code> <code>refs</code> <code>exists</code> <em><ref></em>
<code>git</code> <code>refs</code> <code>optimize</code> [<code>--all</code>] [<code>--no-prune</code>] [<code>--auto</code>] [<code>--include</code> <em><pattern></em>] [<code>--exclude</code> <em><pattern></em>]</pre>
<div class="attribution">
</div></div>
</div>
</div>
<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>This command provides low-level access to refs.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_commands">COMMANDS</h2>
<div class="sectionbody">
<div class="dlist"><dl>
<dt class="hdlist1">
<code>migrate</code>
</dt>
<dd>
<p>
Migrate ref store between different formats.
</p>
</dd>
<dt class="hdlist1">
<code>verify</code>
</dt>
<dd>
<p>
Verify reference database consistency.
</p>
</dd>
<dt class="hdlist1">
list
</dt>
<dd>
<p>
List references in the repository with support for filtering,
formatting, and sorting. This subcommand is an alias for
<a href="git-for-each-ref.html">git-for-each-ref(1)</a> and offers identical functionality.
</p>
</dd>
<dt class="hdlist1">
exists
</dt>
<dd>
<p>
Check whether the given reference exists. Returns an exit code of 0 if
it does, 2 if it is missing, and 1 in case looking up the reference
failed with an error other than the reference being missing. This does
not verify whether the reference resolves to an actual object.
</p>
</dd>
<dt class="hdlist1">
optimize
</dt>
<dd>
<p>
Optimizes references to improve repository performance and reduce disk
usage. This subcommand is an alias for <a href="git-pack-refs.html">git-pack-refs(1)</a> and
offers identical functionality.
</p>
</dd>
</dl></div>
</div>
</div>
<div class="sect1">
<h2 id="_options">OPTIONS</h2>
<div class="sectionbody">
<div class="paragraph"><p>The following options are specific to <code>git</code> <code>refs</code> <code>migrate</code>:</p></div>
<div class="dlist"><dl>
<dt class="hdlist1">
<code>--ref-format=</code><em><format></em>
</dt>
<dd>
<p>
The ref format to migrate the ref store to. Can be one of:
</p>
<div class="ulist"><ul>
<li>
<p>
<code>files</code> for loose files with packed-refs. This is the default.
</p>
</li>
<li>
<p>
<code>reftable</code> for the reftable format. This format is experimental and its
internals are subject to change.
</p>
</li>
</ul></div>
</dd>
<dt class="hdlist1">
<code>--dry-run</code>
</dt>
<dd>
<p>
Perform the migration, but do not modify the repository. The migrated
refs will be written into a separate directory that can be inspected
separately. The name of the directory will be reported on stdout. This
can be used to double check that the migration works as expected before
performing the actual migration.
</p>
</dd>
<dt class="hdlist1">
<code>--reflog</code>
</dt>
<dt class="hdlist1">
<code>--no-reflog</code>
</dt>
<dd>
<p>
Choose between migrating the reflog data to the new backend,
and discarding them. The default is "--reflog", to migrate.
</p>
</dd>
</dl></div>
<div class="paragraph"><p>The following options are specific to <code>git</code> <code>refs</code> <code>verify</code>:</p></div>
<div class="dlist"><dl>
<dt class="hdlist1">
<code>--strict</code>
</dt>
<dd>
<p>
Enable stricter error checking. This will cause warnings to be
reported as errors. See <a href="git-fsck.html">git-fsck(1)</a>.
</p>
</dd>
<dt class="hdlist1">
<code>--verbose</code>
</dt>
<dd>
<p>
When verifying the reference database consistency, be chatty.
</p>
</dd>
</dl></div>
<div class="paragraph"><p>The following options are specific to <em>git refs list</em>:</p></div>
<div class="dlist"><dl>
<dt class="hdlist1">
<em><pattern></em>...
</dt>
<dd>
<p>
If one or more <em><pattern></em> parameters are given, only refs are shown that
match against at least one pattern, either using <code>fnmatch</code>(3) or
literally, in the latter case matching completely or from the
beginning up to a slash.
</p>
</dd>
<dt class="hdlist1">
<code>--stdin</code>
</dt>
<dd>
<p>
The list of patterns is read from standard input instead of from
the argument list.
</p>
</dd>
<dt class="hdlist1">
<code>--count=</code><em><count></em>
</dt>
<dd>
<p>
Stop after showing <em><count></em> refs.
</p>
</dd>
<dt class="hdlist1">
<code>--sort=</code><em><key></em>
</dt>
<dd>
<p>
Sort on the field name <em><key></em>. Prefix <code>-</code> to sort in
descending order of the value. When unspecified,
<code>refname</code> is used. You may use the <code>--sort=</code><em><key></em> option
multiple times, in which case the last key becomes the primary
key.
</p>
</dd>
<dt class="hdlist1">
<code>--format</code>[<code>=</code><em><format></em>]
</dt>
<dd>
<p>
A string that interpolates %(<code>fieldname</code>) from a ref being shown and
the object it points at. In addition, the string literal %%
renders as % and %xx - where <code>xx</code> are hex digits - renders as
the character with hex code <code>xx</code>. For example, %00 interpolates to
<code>\0</code> (<em>NUL</em>), %09 to <code>\t</code> (<em>TAB</em>), and %0a to <code>\n</code> (<em>LF</em>).
</p>
</dd>
</dl></div>
<div class="paragraph"><p>When unspecified, <em><format></em> defaults to %(<code>objectname</code>) <code>SPC</code> %(<code>objecttype</code>)
<code>TAB</code> %(<code>refname</code>).</p></div>
<div class="dlist"><dl>
<dt class="hdlist1">
<code>--color</code>[<code>=</code><em><when></em>]
</dt>
<dd>
<p>
Respect any colors specified in the <code>--format</code> option. The
<em><when_</em> field must be one of <code>always</code>, <code>never</code>, or <code>auto</code> (if
<em><when></em> is absent, behave as if <code>always</code> was given).
</p>
</dd>
<dt class="hdlist1">
<code>--shell</code>
</dt>
<dt class="hdlist1">
<code>--perl</code>
</dt>
<dt class="hdlist1">
<code>--python</code>
</dt>
<dt class="hdlist1">
<code>--tcl</code>
</dt>
<dd>
<p>
If given, strings that substitute %(<code>fieldname</code>)
placeholders are quoted as string literals suitable for
the specified host language. This is meant to produce
a scriptlet that can directly be "eval"ed.
</p>
</dd>
<dt class="hdlist1">
<code>--points-at=</code><em><object></em>
</dt>
<dd>
<p>
Only list refs which points at the given object.
</p>
</dd>
<dt class="hdlist1">
<code>--merged</code>[<code>=</code><em><object></em>]
</dt>
<dd>
<p>
Only list refs whose tips are reachable from the
specified commit (<code>HEAD</code> if not specified).
</p>
</dd>
<dt class="hdlist1">
<code>--no-merged</code>[<code>=</code><em><object></em>]
</dt>
<dd>
<p>
Only list refs whose tips are not reachable from <em><object></em>(<code>HEAD</code> if not
specified).
</p>
</dd>
<dt class="hdlist1">
<code>--contains</code>[<code>=</code><em><object></em>]
</dt>
<dd>
<p>
Only list refs which contain <em><object></em>(<code>HEAD</code> if not specified).
</p>
</dd>
<dt class="hdlist1">
<code>--no-contains</code>[<code>=</code><em><object></em>]
</dt>
<dd>
<p>
Only list refs which don’t contain <em><object></em> (<code>HEAD</code>
if not specified).
</p>
</dd>
<dt class="hdlist1">
<code>--ignore-case</code>
</dt>
<dd>
<p>
Sorting and filtering refs are case insensitive.
</p>
</dd>
<dt class="hdlist1">
<code>--omit-empty</code>
</dt>
<dd>
<p>
Do not print a newline after formatted refs where the format expands
to the empty string.
</p>
</dd>
<dt class="hdlist1">
<code>--exclude=</code><em><excluded-pattern></em>
</dt>
<dd>
<p>
If one or more <code>--exclude</code> options are given, only refs which do not
match any <em><excluded-pattern></em> parameters are shown. Matching is done
using the same rules as <em><pattern></em> above.
</p>
</dd>
<dt class="hdlist1">
<code>--include-root-refs</code>
</dt>
<dd>
<p>
List root refs (<code>HEAD</code> and pseudorefs) apart from regular refs.
</p>
</dd>
<dt class="hdlist1">
<code>--start-after=</code><em><marker></em>
</dt>
<dd>
<p>
Allows paginating the output by skipping references up to and including the
specified marker. When paging, it should be noted that references may be
deleted, modified or added between invocations. Output will only yield those
references which follow the marker lexicographically. Output begins from the
first reference that would come after the marker alphabetically. Cannot be
used with <code>--sort=</code><em><key></em> or <code>--stdin</code> options, or the <em><pattern></em> argument(s)
to limit the refs.
</p>
</dd>
</dl></div>
<div class="paragraph"><p>The following options are specific to <em>git refs optimize</em>:</p></div>
<div class="dlist"><dl>
<dt class="hdlist1">
--all
</dt>
<dd>
<p>
The command by default packs all tags and refs that are already
packed, and leaves other refs
alone. This is because branches are expected to be actively
developed and packing their tips does not help performance.
This option causes all refs to be packed as well, with the exception
of hidden refs, broken refs, and symbolic refs. Useful for a repository
with many branches of historical interests.
</p>
</dd>
<dt class="hdlist1">
--no-prune
</dt>
<dd>
<p>
The command usually removes loose refs under <code>$GIT_DIR/refs</code>
hierarchy after packing them. This option tells it not to.
</p>
</dd>
<dt class="hdlist1">
--auto
</dt>
<dd>
<p>
Pack refs as needed depending on the current state of the ref database. The
behavior depends on the ref format used by the repository and may change in the
future.
</p>
<div class="ulist"><ul>
<li>
<p>
"files": Loose references are packed into the <code>packed-refs</code> file
based on the ratio of loose references to the size of the
<code>packed-refs</code> file. The bigger the <code>packed-refs</code> file, the more loose
references need to exist before we repack.
</p>
</li>
<li>
<p>
"reftable": Tables are compacted such that they form a geometric
sequence. For two tables N and N+1, where N+1 is newer, this
maintains the property that N is at least twice as big as N+1. Only
tables that violate this property are compacted.
</p>
</li>
</ul></div>
</dd>
<dt class="hdlist1">
--include <pattern>
</dt>
<dd>
<p>
Pack refs based on a <code>glob</code>(<code>7</code>) pattern. Repetitions of this option
accumulate inclusion patterns. If a ref is both included in <code>--include</code> and
<code>--exclude</code>, <code>--exclude</code> takes precedence. Using <code>--include</code> will preclude all
tags from being included by default. Symbolic refs and broken refs will never
be packed. When used with <code>--all</code>, it will be a noop. Use <code>--no-include</code> to clear
and reset the list of patterns.
</p>
</dd>
<dt class="hdlist1">
--exclude <pattern>
</dt>
<dd>
<p>
Do not pack refs matching the given <code>glob</code>(<code>7</code>) pattern. Repetitions of this option
accumulate exclusion patterns. Use <code>--no-exclude</code> to clear and reset the list of
patterns. If a ref is already packed, including it with <code>--exclude</code> will not
unpack it.
</p>
<div class="paragraph"><p>When used with <code>--all</code>, pack only loose refs which do not match any of
the provided <code>--exclude</code> patterns.</p></div>
<div class="paragraph"><p>When used with <code>--include</code>, refs provided to <code>--include</code>, minus refs that are
provided to <code>--exclude</code> will be packed.</p></div>
</dd>
</dl></div>
</div>
</div>
<div class="sect1">
<h2 id="_known_limitations">KNOWN LIMITATIONS</h2>
<div class="sectionbody">
<div class="paragraph"><p>The ref format migration has several known limitations in its current form:</p></div>
<div class="ulist"><ul>
<li>
<p>
It is not possible to migrate repositories that have worktrees.
</p>
</li>
<li>
<p>
There is no way to block concurrent writes to the repository during an
ongoing migration. Concurrent writes can lead to an inconsistent migrated
state. Users are expected to block writes on a higher level. If your
repository is registered for scheduled maintenance, it is recommended to
unregister it first with git-maintenance(1).
</p>
</li>
</ul></div>
<div class="paragraph"><p>These limitations may eventually be lifted.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_git">GIT</h2>
<div class="sectionbody">
<div class="paragraph"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>
</div>
</div>
</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
Last updated
2025-11-17 16:38:17 UTC
</div>
</div>
</body>
</html>