Blame


1 8797b228 2019-08-04 stsp <!DOCTYPE html>
2 8797b228 2019-08-04 stsp <html>
3 63657f42 2022-09-07 stsp <head>
4 63657f42 2022-09-07 stsp <meta charset="utf-8"/>
5 63657f42 2022-09-07 stsp <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
6 63657f42 2022-09-07 stsp <link rel="stylesheet" href="mandoc.css" type="text/css" media="all"/>
7 63657f42 2022-09-07 stsp <title>GOT(1)</title>
8 63657f42 2022-09-07 stsp </head>
9 8797b228 2019-08-04 stsp <!-- This is an automatically generated file. Do not edit.
10 8797b228 2019-08-04 stsp Copyright (c) 2017 Martin Pieuchot
11 8b679b4b 2020-02-17 stsp Copyright (c) 2018, 2019, 2020 Stefan Sperling
12 8797b228 2019-08-04 stsp
13 8797b228 2019-08-04 stsp Permission to use, copy, modify, and distribute this software for any
14 8797b228 2019-08-04 stsp purpose with or without fee is hereby granted, provided that the above
15 8797b228 2019-08-04 stsp copyright notice and this permission notice appear in all copies.
16 8797b228 2019-08-04 stsp
17 8797b228 2019-08-04 stsp THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
18 8797b228 2019-08-04 stsp WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
19 8797b228 2019-08-04 stsp MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
20 8797b228 2019-08-04 stsp ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
21 8797b228 2019-08-04 stsp WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
22 8797b228 2019-08-04 stsp ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
23 8797b228 2019-08-04 stsp OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
24 8797b228 2019-08-04 stsp -->
25 8797b228 2019-08-04 stsp <body>
26 63657f42 2022-09-07 stsp <div class="head" role="doc-pageheader" aria-label="Manual header
27 63657f42 2022-09-07 stsp line"><span class="head-ltitle">GOT(1)</span> <span class="head-vol">General
28 63657f42 2022-09-07 stsp Commands Manual</span> <span class="head-rtitle">GOT(1)</span></div>
29 63657f42 2022-09-07 stsp <main class="manual-text">
30 8797b228 2019-08-04 stsp <section class="Sh">
31 63657f42 2022-09-07 stsp <h2 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h2>
32 63657f42 2022-09-07 stsp <p class="Pp"><code class="Nm">got</code> &#x2014;
33 63657f42 2022-09-07 stsp <span class="Nd" role="doc-subtitle">Game of Trees</span></p>
34 8797b228 2019-08-04 stsp </section>
35 8797b228 2019-08-04 stsp <section class="Sh">
36 63657f42 2022-09-07 stsp <h2 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h2>
37 8797b228 2019-08-04 stsp <table class="Nm">
38 8797b228 2019-08-04 stsp <tr>
39 8797b228 2019-08-04 stsp <td><code class="Nm">got</code></td>
40 742bb3a1 2022-10-24 stsp <td>[<code class="Fl">-hV</code>] <var class="Ar">command</var>
41 8797b228 2019-08-04 stsp [<var class="Ar">arg ...</var>]</td>
42 8797b228 2019-08-04 stsp </tr>
43 8797b228 2019-08-04 stsp </table>
44 8797b228 2019-08-04 stsp </section>
45 8797b228 2019-08-04 stsp <section class="Sh">
46 63657f42 2022-09-07 stsp <h2 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h2>
47 d8e62599 2019-10-21 stsp <p class="Pp"><code class="Nm">got</code> is a version control system which
48 d8e62599 2019-10-21 stsp stores the history of tracked files in a Git repository, as used by the Git
49 d8e62599 2019-10-21 stsp version control system. This repository format is described in
50 376d4d52 2022-07-04 stsp <a class="Xr" aria-label="git-repository, section
51 376d4d52 2022-07-04 stsp 5">git-repository(5)</a>.</p>
52 8797b228 2019-08-04 stsp <p class="Pp"><code class="Nm">got</code> is a &#x201C;distributed&#x201D;
53 8797b228 2019-08-04 stsp version control system because every copy of a repository is writeable.
54 8797b228 2019-08-04 stsp Modifications made to files can be synchronized between repositories at any
55 8797b228 2019-08-04 stsp time.</p>
56 2dbbbc3a 2020-07-23 stsp <p class="Pp" id="work">Files managed by <code class="Nm">got</code> must be
57 2dbbbc3a 2020-07-23 stsp checked out from the repository for modification. Checked out files are
58 2dbbbc3a 2020-07-23 stsp stored in a <a class="permalink" href="#work"><i class="Em">work
59 2dbbbc3a 2020-07-23 stsp tree</i></a> which can be placed at an arbitrary directory in the filesystem
60 2dbbbc3a 2020-07-23 stsp hierarchy. The on-disk format of this work tree is described in
61 376d4d52 2022-07-04 stsp <a class="Xr" aria-label="got-worktree, section 5">got-worktree(5)</a>.</p>
62 56f3f26e 2024-06-03 stsp <p class="Pp">The <code class="Nm">got</code> utility provides global and
63 56f3f26e 2024-06-03 stsp command-specific options. Global options must precede the command name, and
64 56f3f26e 2024-06-03 stsp are as follows:</p>
65 8797b228 2019-08-04 stsp <dl class="Bl-tag">
66 2dbbbc3a 2020-07-23 stsp <dt id="h"><a class="permalink" href="#h"><code class="Fl">-h</code></a></dt>
67 ae520cae 2019-08-05 stsp <dd>Display usage information and exit immediately.</dd>
68 56dd4d48 2021-04-05 stsp <dt id="V"><a class="permalink" href="#V"><code class="Fl">-V</code></a>,
69 8b679b4b 2020-02-17 stsp <code class="Fl">--version</code></dt>
70 8797b228 2019-08-04 stsp <dd>Display program version and exit immediately.</dd>
71 8797b228 2019-08-04 stsp </dl>
72 56f3f26e 2024-06-03 stsp <p class="Pp">The <code class="Nm">got</code> utility only provides commands
73 56f3f26e 2024-06-03 stsp needed to perform version control tasks. Commands needed for repository
74 56f3f26e 2024-06-03 stsp maintenance tasks are provided by <a class="Xr" aria-label="gotadmin,
75 56f3f26e 2024-06-03 stsp section 1">gotadmin(1)</a>. Git repository server functionality is provided
76 56f3f26e 2024-06-03 stsp by <a class="Xr" aria-label="gotd, section 8">gotd(8)</a>. A repository
77 56f3f26e 2024-06-03 stsp interface for web browsers is provided by <a class="Xr" aria-label="gotwebd,
78 56f3f26e 2024-06-03 stsp section 8">gotwebd(8)</a>. An interactive repository interface for the
79 56f3f26e 2024-06-03 stsp terminal is provided by <a class="Xr" aria-label="tog, section
80 56f3f26e 2024-06-03 stsp 1">tog(1)</a>.</p>
81 8797b228 2019-08-04 stsp <p class="Pp">The commands for <code class="Nm">got</code> are as follows:</p>
82 8797b228 2019-08-04 stsp <dl class="Bl-tag">
83 56f3f26e 2024-06-03 stsp <dt id="init"><a class="permalink" href="#init"><code class="Cm">init</code></a>
84 b183145b 2024-08-14 op [<code class="Fl">-A</code> <var class="Ar">hashing-algorithm</var>]
85 56f3f26e 2024-06-03 stsp [<code class="Fl">-b</code> <var class="Ar">branch</var>]
86 56f3f26e 2024-06-03 stsp <var class="Ar">repository-path</var></dt>
87 56f3f26e 2024-06-03 stsp <dd>Create a new empty repository at the specified
88 56f3f26e 2024-06-03 stsp <var class="Ar">repository-path</var>.
89 56f3f26e 2024-06-03 stsp <p class="Pp">After <code class="Cm">got init</code>, the new repository
90 56f3f26e 2024-06-03 stsp must be populated before <code class="Cm">got checkout</code> can be
91 56f3f26e 2024-06-03 stsp used. The <code class="Cm">got import</code> command can be used to
92 56f3f26e 2024-06-03 stsp populate the new repository with data from a local directory.
93 56f3f26e 2024-06-03 stsp Alternatively, on a server running <a class="Xr" aria-label="gotd,
94 56f3f26e 2024-06-03 stsp section 8">gotd(8)</a>, the new repository can be made available to
95 56f3f26e 2024-06-03 stsp <a class="Xr" aria-label="got, section 1">got(1)</a> or
96 56f3f26e 2024-06-03 stsp <a class="Xr" aria-label="git, section 1">git(1)</a> clients by adding
97 56f3f26e 2024-06-03 stsp the repository to <a class="Xr" aria-label="gotd.conf, section
98 56f3f26e 2024-06-03 stsp 5">gotd.conf(5)</a> and restarting <a class="Xr" aria-label="gotd,
99 56f3f26e 2024-06-03 stsp section 8">gotd(8)</a>. Clients may then clone the new repository from
100 56f3f26e 2024-06-03 stsp the server, populate the cloned repository, and then populate the new
101 56f3f26e 2024-06-03 stsp repository on the server via <code class="Cm">got send</code> or
102 56f3f26e 2024-06-03 stsp <code class="Cm">git push</code>.</p>
103 56f3f26e 2024-06-03 stsp <p class="Pp">The options for <code class="Cm">got init</code> are as
104 56f3f26e 2024-06-03 stsp follows:</p>
105 56f3f26e 2024-06-03 stsp <dl class="Bl-tag">
106 b183145b 2024-08-14 op <dt id="A"><a class="permalink" href="#A"><code class="Fl">-A</code></a>
107 b183145b 2024-08-14 op <var class="Ar">hashing-algorithm</var></dt>
108 b183145b 2024-08-14 op <dd>Configure the repository's <var class="Ar">hashing-algorithm</var>
109 b183145b 2024-08-14 op used for the computation of Git object IDs. Possible values are
110 b183145b 2024-08-14 op <code class="Cm">sha1</code> (the default) or
111 b183145b 2024-08-14 op <code class="Cm">sha256</code>.</dd>
112 56f3f26e 2024-06-03 stsp <dt id="b"><a class="permalink" href="#b"><code class="Fl">-b</code></a>
113 56f3f26e 2024-06-03 stsp <var class="Ar">branch</var></dt>
114 56f3f26e 2024-06-03 stsp <dd>Make the repository's HEAD reference point to the specified
115 56f3f26e 2024-06-03 stsp <var class="Ar">branch</var> instead of the default branch
116 56f3f26e 2024-06-03 stsp &#x201C;main&#x201D;.</dd>
117 56f3f26e 2024-06-03 stsp </dl>
118 56f3f26e 2024-06-03 stsp <p class="Pp">The <code class="Cm">got init</code> command is equivalent to
119 56f3f26e 2024-06-03 stsp <code class="Cm">gotadmin init</code>.</p>
120 56f3f26e 2024-06-03 stsp </dd>
121 63b69821 2021-10-16 stsp <dt id="im"><a class="permalink" href="#import"><code class="Cm" id="import">import</code></a>
122 8797b228 2019-08-04 stsp [<code class="Fl">-b</code> <var class="Ar">branch</var>]
123 63657f42 2022-09-07 stsp [<code class="Fl">-I</code> <var class="Ar">pattern</var>]
124 8797b228 2019-08-04 stsp [<code class="Fl">-m</code> <var class="Ar">message</var>]
125 8797b228 2019-08-04 stsp [<code class="Fl">-r</code> <var class="Ar">repository-path</var>]
126 8797b228 2019-08-04 stsp <var class="Ar">directory</var></dt>
127 63b69821 2021-10-16 stsp <dd>
128 63b69821 2021-10-16 stsp <div class="Bd Bd-indent"><code class="Li">(alias:
129 46043f6f 2021-11-23 stsp <code class="Cm">im</code>)</code></div>
130 46043f6f 2021-11-23 stsp Create an initial commit in a repository from the file hierarchy within the
131 46043f6f 2021-11-23 stsp specified <var class="Ar">directory</var>. The created commit will not
132 8797b228 2019-08-04 stsp have any parent commits, i.e. it will be a root commit. Also create a new
133 8797b228 2019-08-04 stsp reference which provides a branch name for the newly created commit. Show
134 8797b228 2019-08-04 stsp the path of each imported file to indicate progress.
135 8797b228 2019-08-04 stsp <p class="Pp">The <code class="Cm">got import</code> command requires the
136 c2a52be5 2019-09-08 stsp <code class="Ev">GOT_AUTHOR</code> environment variable to be set,
137 376d4d52 2022-07-04 stsp unless an author has been configured in
138 376d4d52 2022-07-04 stsp <a class="Xr" aria-label="got.conf, section 5">got.conf(5)</a> or Git's
139 376d4d52 2022-07-04 stsp <code class="Dv">user.name</code> and <code class="Dv">user.email</code>
140 376d4d52 2022-07-04 stsp configuration settings can be obtained from the repository's
141 376d4d52 2022-07-04 stsp <span class="Pa">.git/config</span> file or from Git's global
142 376d4d52 2022-07-04 stsp <span class="Pa">~/.gitconfig</span> configuration file.</p>
143 8797b228 2019-08-04 stsp <p class="Pp">The options for <code class="Cm">got import</code> are as
144 8797b228 2019-08-04 stsp follows:</p>
145 8797b228 2019-08-04 stsp <dl class="Bl-tag">
146 56f3f26e 2024-06-03 stsp <dt id="b~2"><a class="permalink" href="#b~2"><code class="Fl">-b</code></a>
147 8797b228 2019-08-04 stsp <var class="Ar">branch</var></dt>
148 3cde8558 2022-09-23 stsp <dd>Create the specified <var class="Ar">branch</var>. If this option is
149 3cde8558 2022-09-23 stsp not specified, a branch corresponding to the repository's HEAD
150 3cde8558 2022-09-23 stsp reference will be used. Use of this option is required if the branch
151 3cde8558 2022-09-23 stsp resolved via the repository's HEAD reference already exists.</dd>
152 63657f42 2022-09-07 stsp <dt id="I"><a class="permalink" href="#I"><code class="Fl">-I</code></a>
153 63657f42 2022-09-07 stsp <var class="Ar">pattern</var></dt>
154 63657f42 2022-09-07 stsp <dd>Ignore files or directories with a name which matches the specified
155 63657f42 2022-09-07 stsp <var class="Ar">pattern</var>. This option may be specified multiple
156 63657f42 2022-09-07 stsp times to build a list of ignore patterns. The
157 63657f42 2022-09-07 stsp <var class="Ar">pattern</var> follows the globbing rules documented in
158 f6a6fa94 2023-02-22 stsp <a class="Xr" aria-label="glob, section 7">glob(7)</a>. Ignore
159 f6a6fa94 2023-02-22 stsp patterns which end with a slash, &#x201C;/&#x201D;, will only match
160 f6a6fa94 2023-02-22 stsp directories.</dd>
161 2dbbbc3a 2020-07-23 stsp <dt id="m"><a class="permalink" href="#m"><code class="Fl">-m</code></a>
162 8797b228 2019-08-04 stsp <var class="Ar">message</var></dt>
163 8797b228 2019-08-04 stsp <dd>Use the specified log message when creating the new commit. Without
164 8797b228 2019-08-04 stsp the <code class="Fl">-m</code> option, <code class="Cm">got
165 8797b228 2019-08-04 stsp import</code> opens a temporary file in an editor where a log message
166 461d9094 2023-07-19 stsp can be written. Quitting the editor without saving the file will abort
167 461d9094 2023-07-19 stsp the import operation.</dd>
168 2dbbbc3a 2020-07-23 stsp <dt id="r"><a class="permalink" href="#r"><code class="Fl">-r</code></a>
169 8797b228 2019-08-04 stsp <var class="Ar">repository-path</var></dt>
170 8797b228 2019-08-04 stsp <dd>Use the repository at the specified path. If not specified, assume the
171 8797b228 2019-08-04 stsp repository is located at or above the current working directory.</dd>
172 8797b228 2019-08-04 stsp </dl>
173 8797b228 2019-08-04 stsp </dd>
174 63b69821 2021-10-16 stsp <dt id="cl"><a class="permalink" href="#clone"><code class="Cm" id="clone">clone</code></a>
175 63657f42 2022-09-07 stsp [<code class="Fl">-almqv</code>] [<code class="Fl">-b</code>
176 b6df88e2 2024-12-28 stsp <var class="Ar">branch</var>] [<code class="Fl">-J</code>
177 b6df88e2 2024-12-28 stsp <var class="Ar">jumphost</var>] [<code class="Fl">-R</code>
178 b213cbf7 2020-03-23 stsp <var class="Ar">reference</var>] <var class="Ar">repository-URL</var>
179 b213cbf7 2020-03-23 stsp [<var class="Ar">directory</var>]</dt>
180 63b69821 2021-10-16 stsp <dd>
181 63b69821 2021-10-16 stsp <div class="Bd Bd-indent"><code class="Li">(alias:
182 46043f6f 2021-11-23 stsp <code class="Cm">cl</code>)</code></div>
183 46043f6f 2021-11-23 stsp Clone a Git repository at the specified <var class="Ar">repository-URL</var>
184 46043f6f 2021-11-23 stsp into the specified <var class="Ar">directory</var>. If no
185 b078d5c4 2022-03-23 stsp <var class="Ar">directory</var> is specified, the directory name will be
186 46043f6f 2021-11-23 stsp derived from the name of the cloned repository. <code class="Cm">got
187 46043f6f 2021-11-23 stsp clone</code> will refuse to run if the <var class="Ar">directory</var>
188 46043f6f 2021-11-23 stsp already exists.
189 b213cbf7 2020-03-23 stsp <p class="Pp">The <var class="Ar">repository-URL</var> specifies a protocol
190 b213cbf7 2020-03-23 stsp scheme, a server hostname, an optional port number separated from the
191 b213cbf7 2020-03-23 stsp hostname by a colon, and a path to the repository on the server:
192 b213cbf7 2020-03-23 stsp <a class="Lk" href="scheme://hostname:port/path/to/repository">scheme://hostname:port/path/to/repository</a></p>
193 b213cbf7 2020-03-23 stsp <p class="Pp">The following protocol schemes are supported:</p>
194 b213cbf7 2020-03-23 stsp <dl class="Bl-tag">
195 b213cbf7 2020-03-23 stsp <dt>git</dt>
196 376d4d52 2022-07-04 stsp <dd>The Git protocol as implemented by the
197 376d4d52 2022-07-04 stsp <a class="Xr" aria-label="git-daemon, section 1">git-daemon(1)</a>
198 b213cbf7 2020-03-23 stsp server. Use of this protocol is discouraged since it supports neither
199 b213cbf7 2020-03-23 stsp authentication nor encryption.</dd>
200 bd0bf387 2024-04-23 stsp <dt>ssh</dt>
201 b213cbf7 2020-03-23 stsp <dd>The Git protocol wrapped in an authenticated and encrypted
202 376d4d52 2022-07-04 stsp <a class="Xr" aria-label="ssh, section 1">ssh(1)</a> tunnel. With this
203 376d4d52 2022-07-04 stsp protocol the hostname may contain an embedded username for
204 376d4d52 2022-07-04 stsp <a class="Xr" aria-label="ssh, section 1">ssh(1)</a> to use:
205 b213cbf7 2020-03-23 stsp <a class="Mt" href="mailto:user@hostname">user@hostname</a></dd>
206 bd0bf387 2024-04-23 stsp <dt>http</dt>
207 bd0bf387 2024-04-23 stsp <dd>The &#x201C;smart&#x201D; Git HTTP protocol. Not compatible with
208 bd0bf387 2024-04-23 stsp servers using the &#x201C;dumb&#x201D; Git HTTP protocol.
209 bd0bf387 2024-04-23 stsp <p class="Pp">The &#x201C;smart&#x201D; Git HTTP protocol is supported
210 bd0bf387 2024-04-23 stsp by <code class="Cm">got clone</code> and <code class="Cm">got
211 bd0bf387 2024-04-23 stsp fetch</code>, but not by <code class="Cm">got send</code>. Sending
212 dfc34448 2024-05-06 stsp from a repository cloned over HTTP will require use of a
213 dfc34448 2024-05-06 stsp <code class="Ic">send</code> block in
214 bd0bf387 2024-04-23 stsp <a class="Xr" aria-label="got.conf, section 5">got.conf(5)</a> to
215 bd0bf387 2024-04-23 stsp ensure that the &#x201C;ssh://&#x201D; protocol will be used by
216 bd0bf387 2024-04-23 stsp <code class="Cm">got send</code>.</p>
217 bd0bf387 2024-04-23 stsp <p class="Pp">Use of this protocol is discouraged since it supports
218 bd0bf387 2024-04-23 stsp neither authentication nor encryption.</p>
219 bd0bf387 2024-04-23 stsp </dd>
220 bd0bf387 2024-04-23 stsp <dt>https</dt>
221 bd0bf387 2024-04-23 stsp <dd>The &#x201C;smart&#x201D; Git HTTP protocol wrapped in SSL/TLS.</dd>
222 b213cbf7 2020-03-23 stsp </dl>
223 b213cbf7 2020-03-23 stsp <p class="Pp">Objects in the cloned repository are stored in a pack file
224 b213cbf7 2020-03-23 stsp which is downloaded from the server. This pack file will then be indexed
225 b213cbf7 2020-03-23 stsp to facilitate access to the objects stored within. If any objects in the
226 b213cbf7 2020-03-23 stsp pack file are stored in deltified form, all deltas will be fully
227 b213cbf7 2020-03-23 stsp resolved in order to compute the ID of such objects. This can take some
228 b213cbf7 2020-03-23 stsp time. More details about the pack file format are documented in
229 376d4d52 2022-07-04 stsp <a class="Xr" aria-label="git-repository, section
230 376d4d52 2022-07-04 stsp 5">git-repository(5)</a>.</p>
231 b213cbf7 2020-03-23 stsp <p class="Pp"><code class="Cm">got clone</code> creates a remote repository
232 376d4d52 2022-07-04 stsp entry in the <a class="Xr" aria-label="got.conf, section
233 376d4d52 2022-07-04 stsp 5">got.conf(5)</a> and <span class="Pa">config</span> files of the
234 376d4d52 2022-07-04 stsp cloned repository to store the <var class="Ar">repository-url</var> and
235 376d4d52 2022-07-04 stsp any <var class="Ar">branch</var> or <var class="Ar">reference</var>
236 039953c9 2021-03-22 stsp arguments for future use by <code class="Cm">got fetch</code> or
237 376d4d52 2022-07-04 stsp <a class="Xr" aria-label="git-fetch, section 1">git-fetch(1)</a>.</p>
238 b213cbf7 2020-03-23 stsp <p class="Pp">The options for <code class="Cm">got clone</code> are as
239 b213cbf7 2020-03-23 stsp follows:</p>
240 b213cbf7 2020-03-23 stsp <dl class="Bl-tag">
241 2dbbbc3a 2020-07-23 stsp <dt id="a"><a class="permalink" href="#a"><code class="Fl">-a</code></a></dt>
242 b213cbf7 2020-03-23 stsp <dd>Fetch all branches from the remote repository's
243 039953c9 2021-03-22 stsp &#x201C;refs/heads/&#x201D; reference namespace and set
244 376d4d52 2022-07-04 stsp <code class="Cm">fetch_all_branches</code> in the cloned repository's
245 376d4d52 2022-07-04 stsp <a class="Xr" aria-label="got.conf, section 5">got.conf(5)</a> file
246 376d4d52 2022-07-04 stsp for future use by <code class="Cm">got fetch</code>. If this option is
247 376d4d52 2022-07-04 stsp not specified, a branch resolved via the remote repository's HEAD
248 376d4d52 2022-07-04 stsp reference will be fetched. Cannot be used together with the
249 376d4d52 2022-07-04 stsp <code class="Fl">-b</code> option.</dd>
250 56f3f26e 2024-06-03 stsp <dt id="b~3"><a class="permalink" href="#b~3"><code class="Fl">-b</code></a>
251 b213cbf7 2020-03-23 stsp <var class="Ar">branch</var></dt>
252 b213cbf7 2020-03-23 stsp <dd>Fetch the specified <var class="Ar">branch</var> from the remote
253 b213cbf7 2020-03-23 stsp repository's &#x201C;refs/heads/&#x201D; reference namespace. This
254 b213cbf7 2020-03-23 stsp option may be specified multiple times to build a list of branches to
255 b213cbf7 2020-03-23 stsp fetch. If the branch corresponding to the remote repository's HEAD
256 b213cbf7 2020-03-23 stsp reference is not in this list, the cloned repository's HEAD reference
257 b213cbf7 2020-03-23 stsp will be set to the first branch which was fetched. If this option is
258 b213cbf7 2020-03-23 stsp not specified, a branch resolved via the remote repository's HEAD
259 b213cbf7 2020-03-23 stsp reference will be fetched. Cannot be used together with the
260 b213cbf7 2020-03-23 stsp <code class="Fl">-a</code> option.</dd>
261 b6df88e2 2024-12-28 stsp <dt id="J"><a class="permalink" href="#J"><code class="Fl">-J</code></a>
262 b6df88e2 2024-12-28 stsp <var class="Ar">jumphost</var></dt>
263 b6df88e2 2024-12-28 stsp <dd>Specify a <var class="Ar">jumphost</var> to use with SSH connections.
264 b6df88e2 2024-12-28 stsp The same option will be passed to <a class="Xr" aria-label="ssh,
265 b6df88e2 2024-12-28 stsp section 1">ssh(1)</a>.</dd>
266 2dbbbc3a 2020-07-23 stsp <dt id="l"><a class="permalink" href="#l"><code class="Fl">-l</code></a></dt>
267 b213cbf7 2020-03-23 stsp <dd>List branches and tags available for fetching from the remote
268 b213cbf7 2020-03-23 stsp repository and exit immediately. Cannot be used together with any of
269 039953c9 2021-03-22 stsp the other options except <code class="Fl">-q</code> and
270 039953c9 2021-03-22 stsp <code class="Fl">-v</code>.</dd>
271 2dbbbc3a 2020-07-23 stsp <dt id="m~2"><a class="permalink" href="#m~2"><code class="Fl">-m</code></a></dt>
272 b213cbf7 2020-03-23 stsp <dd>Create the cloned repository as a mirror of the original repository.
273 b213cbf7 2020-03-23 stsp This is useful if the cloned repository will not be used to store
274 a462773e 2020-04-19 stsp locally created commits.
275 376d4d52 2022-07-04 stsp <p class="Pp">The repository's <a class="Xr" aria-label="got.conf,
276 376d4d52 2022-07-04 stsp section 5">got.conf(5)</a> and <span class="Pa">config</span> files
277 376d4d52 2022-07-04 stsp will be set up with the &#x201C;mirror&#x201D; option enabled, such
278 376d4d52 2022-07-04 stsp that <code class="Cm">got fetch</code> or
279 376d4d52 2022-07-04 stsp <a class="Xr" aria-label="git-fetch, section 1">git-fetch(1)</a>
280 a462773e 2020-04-19 stsp will write incoming changes directly to branches in the
281 b213cbf7 2020-03-23 stsp &#x201C;refs/heads/&#x201D; reference namespace, rather than to
282 b213cbf7 2020-03-23 stsp branches in the &#x201C;refs/remotes/&#x201D; namespace. This avoids
283 b213cbf7 2020-03-23 stsp the usual requirement of having to run <code class="Cm">got
284 461d9094 2023-07-19 stsp rebase</code> or <code class="Cm">got merge</code> after
285 461d9094 2023-07-19 stsp <code class="Cm">got fetch</code> in order to make incoming changes
286 461d9094 2023-07-19 stsp appear on branches in the &#x201C;refs/heads/&#x201D; namespace. But
287 461d9094 2023-07-19 stsp maintaining custom changes in the cloned repository becomes
288 461d9094 2023-07-19 stsp difficult since such changes will be at risk of being discarded
289 461d9094 2023-07-19 stsp whenever incoming changes are fetched.</p>
290 b213cbf7 2020-03-23 stsp </dd>
291 2dbbbc3a 2020-07-23 stsp <dt id="q"><a class="permalink" href="#q"><code class="Fl">-q</code></a></dt>
292 b213cbf7 2020-03-23 stsp <dd>Suppress progress reporting output. The same option will be passed to
293 376d4d52 2022-07-04 stsp <a class="Xr" aria-label="ssh, section 1">ssh(1)</a> if
294 376d4d52 2022-07-04 stsp applicable.</dd>
295 2dbbbc3a 2020-07-23 stsp <dt id="R"><a class="permalink" href="#R"><code class="Fl">-R</code></a>
296 b213cbf7 2020-03-23 stsp <var class="Ar">reference</var></dt>
297 b213cbf7 2020-03-23 stsp <dd>In addition to the branches and tags that will be fetched, fetch an
298 b213cbf7 2020-03-23 stsp arbitrary <var class="Ar">reference</var> from the remote repository's
299 b213cbf7 2020-03-23 stsp &#x201C;refs/&#x201D; namespace. This option may be specified multiple
300 b213cbf7 2020-03-23 stsp times to build a list of additional references to fetch. The specified
301 b213cbf7 2020-03-23 stsp <var class="Ar">reference</var> may either be a path to a specific
302 b213cbf7 2020-03-23 stsp reference, or a reference namespace which will cause all references in
303 b213cbf7 2020-03-23 stsp this namespace to be fetched.
304 b213cbf7 2020-03-23 stsp <p class="Pp">Each reference will be mapped into the cloned repository's
305 b213cbf7 2020-03-23 stsp &#x201C;refs/remotes/&#x201D; namespace, unless the
306 b213cbf7 2020-03-23 stsp <code class="Fl">-m</code> option is used to mirror references
307 b213cbf7 2020-03-23 stsp directly into the cloned repository's &#x201C;refs/&#x201D;
308 b213cbf7 2020-03-23 stsp namespace.</p>
309 b213cbf7 2020-03-23 stsp <p class="Pp"><code class="Cm">got clone</code> will refuse to fetch
310 b213cbf7 2020-03-23 stsp references from the remote repository's
311 b213cbf7 2020-03-23 stsp &#x201C;refs/remotes/&#x201D; or &#x201C;refs/got/&#x201D;
312 b213cbf7 2020-03-23 stsp namespace.</p>
313 b213cbf7 2020-03-23 stsp </dd>
314 63657f42 2022-09-07 stsp <dt id="v"><a class="permalink" href="#v"><code class="Fl">-v</code></a></dt>
315 63657f42 2022-09-07 stsp <dd>Verbose mode. Causes <code class="Cm">got clone</code> to print
316 63657f42 2022-09-07 stsp debugging messages to standard error output. This option will be
317 63657f42 2022-09-07 stsp passed to <a class="Xr" aria-label="ssh, section 1">ssh(1)</a> if
318 63657f42 2022-09-07 stsp applicable. Multiple -v options increase the verbosity. The maximum is
319 63657f42 2022-09-07 stsp 3.</dd>
320 b213cbf7 2020-03-23 stsp </dl>
321 b213cbf7 2020-03-23 stsp </dd>
322 63b69821 2021-10-16 stsp <dt id="fe"><a class="permalink" href="#fetch"><code class="Cm" id="fetch">fetch</code></a>
323 63657f42 2022-09-07 stsp [<code class="Fl">-adlqtvX</code>] [<code class="Fl">-b</code>
324 b6df88e2 2024-12-28 stsp <var class="Ar">branch</var>] [<code class="Fl">-J</code>
325 b6df88e2 2024-12-28 stsp <var class="Ar">jumphost</var>] [<code class="Fl">-R</code>
326 63657f42 2022-09-07 stsp <var class="Ar">reference</var>] [<code class="Fl">-r</code>
327 63657f42 2022-09-07 stsp <var class="Ar">repository-path</var>]
328 63657f42 2022-09-07 stsp [<var class="Ar">remote-repository</var>]</dt>
329 63b69821 2021-10-16 stsp <dd>
330 63b69821 2021-10-16 stsp <div class="Bd Bd-indent"><code class="Li">(alias:
331 46043f6f 2021-11-23 stsp <code class="Cm">fe</code>)</code></div>
332 46043f6f 2021-11-23 stsp Fetch new changes from a remote repository. If no
333 b213cbf7 2020-03-23 stsp <var class="Ar">remote-repository</var> is specified,
334 b213cbf7 2020-03-23 stsp &#x201C;origin&#x201D; will be used. The remote repository's URL is
335 376d4d52 2022-07-04 stsp obtained from the corresponding entry in
336 376d4d52 2022-07-04 stsp <a class="Xr" aria-label="got.conf, section 5">got.conf(5)</a> or Git's
337 376d4d52 2022-07-04 stsp <span class="Pa">config</span> file of the local repository, as created by
338 376d4d52 2022-07-04 stsp <code class="Cm">got clone</code>.
339 f6a6fa94 2023-02-22 stsp <p class="Pp">By default, any branches configured in
340 f6a6fa94 2023-02-22 stsp <a class="Xr" aria-label="got.conf, section 5">got.conf(5)</a> for the
341 f6a6fa94 2023-02-22 stsp <var class="Ar">remote-repository</var> will be fetched. If
342 f6a6fa94 2023-02-22 stsp <code class="Cm">got fetch</code> is invoked in a work tree then this
343 f6a6fa94 2023-02-22 stsp work tree's current branch will be fetched, too, provided it is present
344 f6a6fa94 2023-02-22 stsp on the server. If no branches to fetch can be found in
345 f6a6fa94 2023-02-22 stsp <a class="Xr" aria-label="got.conf, section 5">got.conf(5)</a> or via a
346 f6a6fa94 2023-02-22 stsp work tree, or said branches are not found on the server, a branch
347 f6a6fa94 2023-02-22 stsp resolved via the remote repository's HEAD reference will be fetched.
348 f6a6fa94 2023-02-22 stsp Likewise, if a HEAD reference for the
349 f6a6fa94 2023-02-22 stsp <var class="Ar">remote-repository</var> exists but its target no longer
350 f6a6fa94 2023-02-22 stsp matches the remote HEAD, then the new target branch will be fetched.
351 f6a6fa94 2023-02-22 stsp This default behaviour can be overridden with the
352 f6a6fa94 2023-02-22 stsp <code class="Fl">-a</code> and <code class="Fl">-b</code> options.</p>
353 b213cbf7 2020-03-23 stsp <p class="Pp">New changes will be stored in a separate pack file downloaded
354 b213cbf7 2020-03-23 stsp from the server. Optionally, separate pack files stored in the
355 376d4d52 2022-07-04 stsp repository can be combined with <a class="Xr" aria-label="git-repack,
356 376d4d52 2022-07-04 stsp section 1">git-repack(1)</a>.</p>
357 b213cbf7 2020-03-23 stsp <p class="Pp">By default, branch references in the
358 b213cbf7 2020-03-23 stsp &#x201C;refs/remotes/&#x201D; reference namespace will be updated to
359 b213cbf7 2020-03-23 stsp point at the newly fetched commits. The <code class="Cm">got
360 461d9094 2023-07-19 stsp rebase</code> or <code class="Cm">got merge</code> command can then be
361 461d9094 2023-07-19 stsp used to make new changes visible on branches in the
362 461d9094 2023-07-19 stsp &#x201C;refs/heads/&#x201D; namespace, merging incoming changes with the
363 461d9094 2023-07-19 stsp changes on those branches as necessary.</p>
364 b213cbf7 2020-03-23 stsp <p class="Pp">If the repository was created as a mirror with
365 b078d5c4 2022-03-23 stsp <code class="Cm">got clone -m</code>, then all branches in the
366 b213cbf7 2020-03-23 stsp &#x201C;refs/heads/&#x201D; namespace will be updated directly to match
367 b213cbf7 2020-03-23 stsp the corresponding branches in the remote repository. If those branches
368 b213cbf7 2020-03-23 stsp contained local commits, these commits will no longer be reachable via a
369 b213cbf7 2020-03-23 stsp reference and will therefore be at risk of being discarded by Git's
370 16cd1323 2021-07-26 stsp garbage collector or <code class="Cm">gotadmin cleanup</code>.
371 16cd1323 2021-07-26 stsp Maintaining custom changes in a mirror repository is therefore
372 16cd1323 2021-07-26 stsp discouraged.</p>
373 b213cbf7 2020-03-23 stsp <p class="Pp">In any case, references in the &#x201C;refs/tags/&#x201D;
374 b213cbf7 2020-03-23 stsp namespace will always be fetched and mapped directly to local references
375 b213cbf7 2020-03-23 stsp in the same namespace.</p>
376 b213cbf7 2020-03-23 stsp <p class="Pp">The options for <code class="Cm">got fetch</code> are as
377 b213cbf7 2020-03-23 stsp follows:</p>
378 b213cbf7 2020-03-23 stsp <dl class="Bl-tag">
379 2dbbbc3a 2020-07-23 stsp <dt id="a~2"><a class="permalink" href="#a~2"><code class="Fl">-a</code></a></dt>
380 b213cbf7 2020-03-23 stsp <dd>Fetch all branches from the remote repository's
381 039953c9 2021-03-22 stsp &#x201C;refs/heads/&#x201D; reference namespace. This option can be
382 039953c9 2021-03-22 stsp enabled by default for specific repositories in
383 f6a6fa94 2023-02-22 stsp <a class="Xr" aria-label="got.conf, section 5">got.conf(5)</a>. Cannot
384 f6a6fa94 2023-02-22 stsp be used together with the <code class="Fl">-b</code> option.</dd>
385 56f3f26e 2024-06-03 stsp <dt id="b~4"><a class="permalink" href="#b~4"><code class="Fl">-b</code></a>
386 b213cbf7 2020-03-23 stsp <var class="Ar">branch</var></dt>
387 b213cbf7 2020-03-23 stsp <dd>Fetch the specified <var class="Ar">branch</var> from the remote
388 b213cbf7 2020-03-23 stsp repository's &#x201C;refs/heads/&#x201D; reference namespace. This
389 b213cbf7 2020-03-23 stsp option may be specified multiple times to build a list of branches to
390 f6a6fa94 2023-02-22 stsp fetch. Cannot be used together with the <code class="Fl">-a</code>
391 f6a6fa94 2023-02-22 stsp option.</dd>
392 2dbbbc3a 2020-07-23 stsp <dt id="d"><a class="permalink" href="#d"><code class="Fl">-d</code></a></dt>
393 b213cbf7 2020-03-23 stsp <dd>Delete branches and tags from the local repository which are no longer
394 b213cbf7 2020-03-23 stsp present in the remote repository. Only references are deleted. Any
395 b213cbf7 2020-03-23 stsp commit, tree, tag, and blob objects belonging to deleted branches or
396 b213cbf7 2020-03-23 stsp tags remain in the repository and may be removed separately with Git's
397 16cd1323 2021-07-26 stsp garbage collector or <code class="Cm">gotadmin cleanup</code>.</dd>
398 b6df88e2 2024-12-28 stsp <dt id="J~2"><a class="permalink" href="#J~2"><code class="Fl">-J</code></a>
399 b6df88e2 2024-12-28 stsp <var class="Ar">jumphost</var></dt>
400 b6df88e2 2024-12-28 stsp <dd>Specify a <var class="Ar">jumphost</var> to use with SSH connections.
401 b6df88e2 2024-12-28 stsp The same option will be passed to <a class="Xr" aria-label="ssh,
402 b6df88e2 2024-12-28 stsp section 1">ssh(1)</a>.</dd>
403 2dbbbc3a 2020-07-23 stsp <dt id="l~2"><a class="permalink" href="#l~2"><code class="Fl">-l</code></a></dt>
404 b213cbf7 2020-03-23 stsp <dd>List branches and tags available for fetching from the remote
405 b213cbf7 2020-03-23 stsp repository and exit immediately. Cannot be used together with any of
406 039953c9 2021-03-22 stsp the other options except <code class="Fl">-v</code>,
407 039953c9 2021-03-22 stsp <code class="Fl">-q</code>, and <code class="Fl">-r</code>.</dd>
408 2dbbbc3a 2020-07-23 stsp <dt id="q~2"><a class="permalink" href="#q~2"><code class="Fl">-q</code></a></dt>
409 b213cbf7 2020-03-23 stsp <dd>Suppress progress reporting output. The same option will be passed to
410 376d4d52 2022-07-04 stsp <a class="Xr" aria-label="ssh, section 1">ssh(1)</a> if
411 376d4d52 2022-07-04 stsp applicable.</dd>
412 2dbbbc3a 2020-07-23 stsp <dt id="R~2"><a class="permalink" href="#R~2"><code class="Fl">-R</code></a>
413 b213cbf7 2020-03-23 stsp <var class="Ar">reference</var></dt>
414 b213cbf7 2020-03-23 stsp <dd>In addition to the branches and tags that will be fetched, fetch an
415 b213cbf7 2020-03-23 stsp arbitrary <var class="Ar">reference</var> from the remote repository's
416 b213cbf7 2020-03-23 stsp &#x201C;refs/&#x201D; namespace. This option may be specified multiple
417 b213cbf7 2020-03-23 stsp times to build a list of additional references to fetch. The specified
418 b213cbf7 2020-03-23 stsp <var class="Ar">reference</var> may either be a path to a specific
419 b213cbf7 2020-03-23 stsp reference, or a reference namespace which will cause all references in
420 b213cbf7 2020-03-23 stsp this namespace to be fetched.
421 b213cbf7 2020-03-23 stsp <p class="Pp">Each reference will be mapped into the local repository's
422 b213cbf7 2020-03-23 stsp &#x201C;refs/remotes/&#x201D; namespace, unless the local repository
423 b213cbf7 2020-03-23 stsp was created as a mirror with <code class="Cm">got clone -m</code> in
424 b213cbf7 2020-03-23 stsp which case references will be mapped directly into the local
425 b213cbf7 2020-03-23 stsp repository's &#x201C;refs/&#x201D; namespace.</p>
426 a462773e 2020-04-19 stsp <p class="Pp">Once a reference has been fetched, a branch based on it
427 a462773e 2020-04-19 stsp can be created with <code class="Cm">got branch</code> if
428 b213cbf7 2020-03-23 stsp needed.</p>
429 b213cbf7 2020-03-23 stsp <p class="Pp"><code class="Cm">got fetch</code> will refuse to fetch
430 b213cbf7 2020-03-23 stsp references from the remote repository's
431 b213cbf7 2020-03-23 stsp &#x201C;refs/remotes/&#x201D; or &#x201C;refs/got/&#x201D;
432 b213cbf7 2020-03-23 stsp namespace.</p>
433 16cd1323 2021-07-26 stsp </dd>
434 63657f42 2022-09-07 stsp <dt id="r~2"><a class="permalink" href="#r~2"><code class="Fl">-r</code></a>
435 63657f42 2022-09-07 stsp <var class="Ar">repository-path</var></dt>
436 63657f42 2022-09-07 stsp <dd>Use the repository at the specified path. If not specified, assume the
437 63657f42 2022-09-07 stsp repository is located at or above the current working directory. If
438 63657f42 2022-09-07 stsp this directory is a <code class="Nm">got</code> work tree, use the
439 63657f42 2022-09-07 stsp repository path associated with this work tree.</dd>
440 63657f42 2022-09-07 stsp <dt id="t"><a class="permalink" href="#t"><code class="Fl">-t</code></a></dt>
441 63657f42 2022-09-07 stsp <dd>Allow existing references in the &#x201C;refs/tags&#x201D; namespace
442 63657f42 2022-09-07 stsp to be updated if they have changed on the server. If not specified,
443 63657f42 2022-09-07 stsp only new tag references will be created.</dd>
444 63657f42 2022-09-07 stsp <dt id="v~2"><a class="permalink" href="#v~2"><code class="Fl">-v</code></a></dt>
445 63657f42 2022-09-07 stsp <dd>Verbose mode. Causes <code class="Cm">got fetch</code> to print
446 63657f42 2022-09-07 stsp debugging messages to standard error output. The same option will be
447 63657f42 2022-09-07 stsp passed to <a class="Xr" aria-label="ssh, section 1">ssh(1)</a> if
448 63657f42 2022-09-07 stsp applicable. Multiple -v options increase the verbosity. The maximum is
449 63657f42 2022-09-07 stsp 3.</dd>
450 16cd1323 2021-07-26 stsp <dt id="X"><a class="permalink" href="#X"><code class="Fl">-X</code></a></dt>
451 16cd1323 2021-07-26 stsp <dd>Delete all references which correspond to a particular
452 16cd1323 2021-07-26 stsp <var class="Ar">remote-repository</var> instead of fetching new
453 16cd1323 2021-07-26 stsp changes. This can be useful when a remote repository is being removed
454 376d4d52 2022-07-04 stsp from <a class="Xr" aria-label="got.conf, section 5">got.conf(5)</a>.
455 16cd1323 2021-07-26 stsp <p class="Pp">With <code class="Fl">-X</code>, the
456 16cd1323 2021-07-26 stsp <var class="Ar">remote-repository</var> argument is mandatory and no
457 16cd1323 2021-07-26 stsp other options except <code class="Fl">-r</code>,
458 16cd1323 2021-07-26 stsp <code class="Fl">-v</code>, and <code class="Fl">-q</code> are
459 16cd1323 2021-07-26 stsp allowed.</p>
460 16cd1323 2021-07-26 stsp <p class="Pp">Only references are deleted. Any commit, tree, tag, and
461 16cd1323 2021-07-26 stsp blob objects fetched from a remote repository will generally be
462 16cd1323 2021-07-26 stsp stored in pack files and may be removed separately with
463 376d4d52 2022-07-04 stsp <a class="Xr" aria-label="git-repack, section 1">git-repack(1)</a>
464 376d4d52 2022-07-04 stsp and Git's garbage collector.</p>
465 b213cbf7 2020-03-23 stsp </dd>
466 b213cbf7 2020-03-23 stsp </dl>
467 b213cbf7 2020-03-23 stsp </dd>
468 63b69821 2021-10-16 stsp <dt id="co"><a class="permalink" href="#checkout"><code class="Cm" id="checkout">checkout</code></a>
469 63657f42 2022-09-07 stsp [<code class="Fl">-Eq</code>] [<code class="Fl">-b</code>
470 8b679b4b 2020-02-17 stsp <var class="Ar">branch</var>] [<code class="Fl">-c</code>
471 8b679b4b 2020-02-17 stsp <var class="Ar">commit</var>] [<code class="Fl">-p</code>
472 63657f42 2022-09-07 stsp <var class="Ar">path-prefix</var>] <var class="Ar">repository-path</var>
473 8797b228 2019-08-04 stsp [<var class="Ar">work-tree-path</var>]</dt>
474 63b69821 2021-10-16 stsp <dd>
475 63b69821 2021-10-16 stsp <div class="Bd Bd-indent"><code class="Li">(alias:
476 46043f6f 2021-11-23 stsp <code class="Cm">co</code>)</code></div>
477 46043f6f 2021-11-23 stsp Copy files from a repository into a new work tree. Show the status of each
478 8b679b4b 2020-02-17 stsp affected file, using the following status codes:
479 8b679b4b 2020-02-17 stsp <table class="Bl-column">
480 8b679b4b 2020-02-17 stsp <tr>
481 8b679b4b 2020-02-17 stsp <td>A</td>
482 8b679b4b 2020-02-17 stsp <td>new file was added</td>
483 8b679b4b 2020-02-17 stsp </tr>
484 8b679b4b 2020-02-17 stsp <tr>
485 8b679b4b 2020-02-17 stsp <td>E</td>
486 8b679b4b 2020-02-17 stsp <td>file already exists in work tree's meta-data</td>
487 8b679b4b 2020-02-17 stsp </tr>
488 8b679b4b 2020-02-17 stsp </table>
489 8b679b4b 2020-02-17 stsp <p class="Pp">If the <var class="Ar">work tree path</var> is not specified,
490 8b679b4b 2020-02-17 stsp either use the last component of <var class="Ar">repository path</var>,
491 8b679b4b 2020-02-17 stsp or if a <var class="Ar">path prefix</var> was specified use the last
492 8b679b4b 2020-02-17 stsp component of <var class="Ar">path prefix</var>.</p>
493 8797b228 2019-08-04 stsp <p class="Pp">The options for <code class="Cm">got checkout</code> are as
494 8797b228 2019-08-04 stsp follows:</p>
495 8797b228 2019-08-04 stsp <dl class="Bl-tag">
496 56f3f26e 2024-06-03 stsp <dt id="b~5"><a class="permalink" href="#b~5"><code class="Fl">-b</code></a>
497 8797b228 2019-08-04 stsp <var class="Ar">branch</var></dt>
498 8797b228 2019-08-04 stsp <dd>Check out files from a commit on the specified
499 8797b228 2019-08-04 stsp <var class="Ar">branch</var>. If this option is not specified, a
500 8797b228 2019-08-04 stsp branch resolved via the repository's HEAD reference will be used.</dd>
501 2dbbbc3a 2020-07-23 stsp <dt id="c"><a class="permalink" href="#c"><code class="Fl">-c</code></a>
502 8797b228 2019-08-04 stsp <var class="Ar">commit</var></dt>
503 8797b228 2019-08-04 stsp <dd>Check out files from the specified <var class="Ar">commit</var> on the
504 461d9094 2023-07-19 stsp selected branch. If this option is not specified, the most recent
505 461d9094 2023-07-19 stsp commit on the selected branch will be used.
506 461d9094 2023-07-19 stsp <p class="Pp">The expected <var class="Ar">commit</var> argument is a
507 b183145b 2024-08-14 op commit ID, or a reference name or a keyword which will be resolved
508 b183145b 2024-08-14 op to a commit ID. An abbreviated hash argument will be expanded to a
509 b183145b 2024-08-14 op full commit ID automatically, provided the abbreviation is unique.
510 b183145b 2024-08-14 op The keywords &quot;:base&quot; and &quot;:head&quot; resolve to the
511 b183145b 2024-08-14 op repository's HEAD reference, or, if the <code class="Fl">-b</code>
512 b183145b 2024-08-14 op option is used, the head of the checked-out
513 b183145b 2024-08-14 op <var class="Ar">branch</var>. Keywords and reference names may be
514 b183145b 2024-08-14 op appended with &quot;:+&quot; or &quot;:-&quot; modifiers and an
515 b183145b 2024-08-14 op optional integer N to denote the Nth descendant or antecedent by
516 b183145b 2024-08-14 op first parent traversal, respectively; for example,
517 461d9094 2023-07-19 stsp <b class="Sy">:head:-2</b> denotes the work tree branch head's 2nd
518 461d9094 2023-07-19 stsp generation ancestor, and <b class="Sy">foo:-3</b> will denote the
519 461d9094 2023-07-19 stsp 3rd generation ancestor of the commit resolved by the
520 461d9094 2023-07-19 stsp &quot;foo&quot; reference. If an integer does not follow the
521 461d9094 2023-07-19 stsp &quot;:+&quot; or &quot;:-&quot; modifier, a &quot;1&quot; is
522 461d9094 2023-07-19 stsp implicitly appended (e.g., <b class="Sy">:head:-</b> is equivalent
523 461d9094 2023-07-19 stsp to <b class="Sy">:head:-1</b>).</p>
524 ae803b74 2020-03-06 stsp <p class="Pp">If the specified <var class="Ar">commit</var> is not
525 ae803b74 2020-03-06 stsp contained in the selected branch, a different branch which contains
526 ae803b74 2020-03-06 stsp this commit must be specified with the <code class="Fl">-b</code>
527 b078d5c4 2022-03-23 stsp option. If no such branch is known, a new branch must be created for
528 ae803b74 2020-03-06 stsp this commit with <code class="Cm">got branch</code> before
529 ae803b74 2020-03-06 stsp <code class="Cm">got checkout</code> can be used. Checking out work
530 ae803b74 2020-03-06 stsp trees with an unknown branch is intentionally not supported.</p>
531 ae803b74 2020-03-06 stsp </dd>
532 63657f42 2022-09-07 stsp <dt id="E"><a class="permalink" href="#E"><code class="Fl">-E</code></a></dt>
533 63657f42 2022-09-07 stsp <dd>Proceed with the checkout operation even if the directory at
534 63657f42 2022-09-07 stsp <var class="Ar">work-tree-path</var> is not empty. Existing files will
535 63657f42 2022-09-07 stsp be left intact.</dd>
536 2dbbbc3a 2020-07-23 stsp <dt id="p"><a class="permalink" href="#p"><code class="Fl">-p</code></a>
537 8797b228 2019-08-04 stsp <var class="Ar">path-prefix</var></dt>
538 8797b228 2019-08-04 stsp <dd>Restrict the work tree to a subset of the repository's tree hierarchy.
539 8797b228 2019-08-04 stsp Only files beneath the specified <var class="Ar">path-prefix</var>
540 8797b228 2019-08-04 stsp will be checked out.</dd>
541 4448c231 2021-09-15 stsp <dt id="q~3"><a class="permalink" href="#q~3"><code class="Fl">-q</code></a></dt>
542 4448c231 2021-09-15 stsp <dd>Silence progress output.</dd>
543 8797b228 2019-08-04 stsp </dl>
544 8797b228 2019-08-04 stsp </dd>
545 63b69821 2021-10-16 stsp <dt id="up"><a class="permalink" href="#update"><code class="Cm" id="update">update</code></a>
546 63657f42 2022-09-07 stsp [<code class="Fl">-q</code>] [<code class="Fl">-b</code>
547 63657f42 2022-09-07 stsp <var class="Ar">branch</var>] [<code class="Fl">-c</code>
548 63657f42 2022-09-07 stsp <var class="Ar">commit</var>] [<var class="Ar">path ...</var>]</dt>
549 63b69821 2021-10-16 stsp <dd>
550 63b69821 2021-10-16 stsp <div class="Bd Bd-indent"><code class="Li">(alias:
551 46043f6f 2021-11-23 stsp <code class="Cm">up</code>)</code></div>
552 46043f6f 2021-11-23 stsp Update an existing work tree to a different <var class="Ar">commit</var>.
553 9e67ab87 2020-04-14 stsp Change existing files in the work tree as necessary to match file contents
554 9e67ab87 2020-04-14 stsp of this commit. Preserve any local changes in the work tree and merge them
555 9e67ab87 2020-04-14 stsp with the incoming changes.
556 a462773e 2020-04-19 stsp <p class="Pp">Files which already contain merge conflicts will not be
557 a462773e 2020-04-19 stsp updated to avoid further complications. Such files will be updated when
558 a462773e 2020-04-19 stsp <code class="Cm">got update</code> is run again after merge conflicts
559 b078d5c4 2022-03-23 stsp have been resolved. If the conflicting changes are no longer needed,
560 a462773e 2020-04-19 stsp affected files can be reverted with <code class="Cm">got revert</code>
561 a462773e 2020-04-19 stsp before running <code class="Cm">got update</code> again.</p>
562 9e67ab87 2020-04-14 stsp <p class="Pp">Show the status of each affected file, using the following
563 9e67ab87 2020-04-14 stsp status codes:</p>
564 8797b228 2019-08-04 stsp <table class="Bl-column">
565 8797b228 2019-08-04 stsp <tr>
566 8797b228 2019-08-04 stsp <td>U</td>
567 8797b228 2019-08-04 stsp <td>file was updated and contained no local changes</td>
568 8797b228 2019-08-04 stsp </tr>
569 8797b228 2019-08-04 stsp <tr>
570 8797b228 2019-08-04 stsp <td>G</td>
571 8797b228 2019-08-04 stsp <td>file was updated and local changes were merged cleanly</td>
572 8797b228 2019-08-04 stsp </tr>
573 8797b228 2019-08-04 stsp <tr>
574 8797b228 2019-08-04 stsp <td>C</td>
575 8797b228 2019-08-04 stsp <td>file was updated and conflicts occurred during merge</td>
576 8797b228 2019-08-04 stsp </tr>
577 8797b228 2019-08-04 stsp <tr>
578 8797b228 2019-08-04 stsp <td>D</td>
579 8797b228 2019-08-04 stsp <td>file was deleted</td>
580 86b2b9f3 2023-03-12 stsp </tr>
581 86b2b9f3 2023-03-12 stsp <tr>
582 86b2b9f3 2023-03-12 stsp <td>d</td>
583 86b2b9f3 2023-03-12 stsp <td>file's deletion was prevented by local modifications</td>
584 8797b228 2019-08-04 stsp </tr>
585 8797b228 2019-08-04 stsp <tr>
586 8797b228 2019-08-04 stsp <td>A</td>
587 8797b228 2019-08-04 stsp <td>new file was added</td>
588 8797b228 2019-08-04 stsp </tr>
589 8797b228 2019-08-04 stsp <tr>
590 8797b228 2019-08-04 stsp <td>~</td>
591 8797b228 2019-08-04 stsp <td>versioned file is obstructed by a non-regular file</td>
592 8797b228 2019-08-04 stsp </tr>
593 8797b228 2019-08-04 stsp <tr>
594 8797b228 2019-08-04 stsp <td>!</td>
595 8797b228 2019-08-04 stsp <td>a missing versioned file was restored</td>
596 a462773e 2020-04-19 stsp </tr>
597 a462773e 2020-04-19 stsp <tr>
598 a462773e 2020-04-19 stsp <td>#</td>
599 a462773e 2020-04-19 stsp <td>file was not updated because it contains merge conflicts</td>
600 8797b228 2019-08-04 stsp </tr>
601 1554b334 2020-08-02 stsp <tr>
602 1554b334 2020-08-02 stsp <td>?</td>
603 1554b334 2020-08-02 stsp <td>changes destined for an unversioned file were not merged</td>
604 1554b334 2020-08-02 stsp </tr>
605 8797b228 2019-08-04 stsp </table>
606 8797b228 2019-08-04 stsp <p class="Pp">If no <var class="Ar">path</var> is specified, update the
607 8797b228 2019-08-04 stsp entire work tree. Otherwise, restrict the update operation to files at
608 8797b228 2019-08-04 stsp or within the specified paths. Each path is required to exist in the
609 8797b228 2019-08-04 stsp update operation's target commit. Files in the work tree outside
610 8797b228 2019-08-04 stsp specified paths will remain unchanged and will retain their previously
611 8797b228 2019-08-04 stsp recorded base commit. Some <code class="Nm">got</code> commands may
612 8797b228 2019-08-04 stsp refuse to run while the work tree contains files from multiple base
613 8797b228 2019-08-04 stsp commits. The base commit of such a work tree can be made consistent by
614 8797b228 2019-08-04 stsp running <code class="Cm">got update</code> across the entire work tree.
615 8797b228 2019-08-04 stsp Specifying a <var class="Ar">path</var> is incompatible with the
616 8797b228 2019-08-04 stsp <code class="Fl">-b</code> option.</p>
617 8797b228 2019-08-04 stsp <p class="Pp"><code class="Cm">got update</code> cannot update paths with
618 8797b228 2019-08-04 stsp staged changes. If changes have been staged with <code class="Cm">got
619 91b3da3f 2019-08-18 stsp stage</code>, these changes must first be committed with
620 8797b228 2019-08-04 stsp <code class="Cm">got commit</code> or unstaged with <code class="Cm">got
621 8797b228 2019-08-04 stsp unstage</code>.</p>
622 8797b228 2019-08-04 stsp <p class="Pp">The options for <code class="Cm">got update</code> are as
623 8797b228 2019-08-04 stsp follows:</p>
624 8797b228 2019-08-04 stsp <dl class="Bl-tag">
625 56f3f26e 2024-06-03 stsp <dt id="b~6"><a class="permalink" href="#b~6"><code class="Fl">-b</code></a>
626 8797b228 2019-08-04 stsp <var class="Ar">branch</var></dt>
627 8797b228 2019-08-04 stsp <dd>Switch the work tree's branch reference to the specified
628 8797b228 2019-08-04 stsp <var class="Ar">branch</var> before updating the work tree. This
629 9e67ab87 2020-04-14 stsp option requires that all paths in the work tree are updated.
630 9e67ab87 2020-04-14 stsp <p class="Pp">As usual, any local changes in the work tree will be
631 9e67ab87 2020-04-14 stsp preserved. This can be useful when switching to a newly created
632 9e67ab87 2020-04-14 stsp branch in order to commit existing local changes to this branch.</p>
633 9e67ab87 2020-04-14 stsp <p class="Pp">Any local changes must be dealt with separately in order
634 9e67ab87 2020-04-14 stsp to obtain a work tree with pristine file contents corresponding
635 9e67ab87 2020-04-14 stsp exactly to the specified <var class="Ar">branch</var>. Such changes
636 9e67ab87 2020-04-14 stsp could first be committed to a different branch with
637 9e67ab87 2020-04-14 stsp <code class="Cm">got commit</code>, or could be discarded with
638 9e67ab87 2020-04-14 stsp <code class="Cm">got revert</code>.</p>
639 9e67ab87 2020-04-14 stsp </dd>
640 2dbbbc3a 2020-07-23 stsp <dt id="c~2"><a class="permalink" href="#c~2"><code class="Fl">-c</code></a>
641 8797b228 2019-08-04 stsp <var class="Ar">commit</var></dt>
642 461d9094 2023-07-19 stsp <dd>Update the work tree to the specified <var class="Ar">commit</var>. If
643 461d9094 2023-07-19 stsp this option is not specified, the most recent commit on the work
644 461d9094 2023-07-19 stsp tree's branch will be used.
645 461d9094 2023-07-19 stsp <p class="Pp">The expected <var class="Ar">commit</var> argument is a
646 b183145b 2024-08-14 op commit ID, or a reference name or a keyword which will be resolved
647 b183145b 2024-08-14 op to a commit ID. An abbreviated hash argument will be expanded to a
648 b183145b 2024-08-14 op full commit ID automatically, provided the abbreviation is unique.
649 b183145b 2024-08-14 op The keywords &quot;:base&quot; and &quot;:head&quot; resolve to the
650 b183145b 2024-08-14 op work tree's base commit and branch head, respectively. Keywords and
651 b183145b 2024-08-14 op reference names may be appended with &quot;:+&quot; or
652 b183145b 2024-08-14 op &quot;:-&quot; modifiers and an optional integer N to denote the Nth
653 b183145b 2024-08-14 op descendant or antecedent, respectively, by first parent traversal;
654 b183145b 2024-08-14 op for example, <b class="Sy">:head:-2</b> denotes the work tree branch
655 b183145b 2024-08-14 op head's 2nd generation ancestor, and <b class="Sy">:base:+4</b>
656 b183145b 2024-08-14 op denotes the 4th generation descendant of the work tree's base
657 b183145b 2024-08-14 op commit. Similarly, <b class="Sy">foo:-3</b> will denote the 3rd
658 b183145b 2024-08-14 op generation ancestor of the commit resolved by the &quot;foo&quot;
659 b183145b 2024-08-14 op reference. If an integer does not follow the &quot;:+&quot; or
660 b183145b 2024-08-14 op &quot;:-&quot; modifier, a &quot;1&quot; is implicitly appended
661 b183145b 2024-08-14 op (e.g., <b class="Sy">:head:-</b> is equivalent to
662 b183145b 2024-08-14 op <b class="Sy">:head:-1</b>).</p>
663 461d9094 2023-07-19 stsp </dd>
664 4448c231 2021-09-15 stsp <dt id="q~4"><a class="permalink" href="#q~4"><code class="Fl">-q</code></a></dt>
665 4448c231 2021-09-15 stsp <dd>Silence progress output.</dd>
666 8797b228 2019-08-04 stsp </dl>
667 8797b228 2019-08-04 stsp </dd>
668 63b69821 2021-10-16 stsp <dt id="st"><a class="permalink" href="#status"><code class="Cm" id="status">status</code></a>
669 63657f42 2022-09-07 stsp [<code class="Fl">-I</code>] [<code class="Fl">-S</code>
670 63657f42 2022-09-07 stsp <var class="Ar">status-codes</var>] [<code class="Fl">-s</code>
671 cb0c453b 2021-09-15 stsp <var class="Ar">status-codes</var>] [<var class="Ar">path ...</var>]</dt>
672 63b69821 2021-10-16 stsp <dd>
673 63b69821 2021-10-16 stsp <div class="Bd Bd-indent"><code class="Li">(alias:
674 46043f6f 2021-11-23 stsp <code class="Cm">st</code>)</code></div>
675 46043f6f 2021-11-23 stsp Show the current modification status of files in a work tree, using the
676 8797b228 2019-08-04 stsp following status codes:
677 8797b228 2019-08-04 stsp <table class="Bl-column">
678 8797b228 2019-08-04 stsp <tr>
679 8797b228 2019-08-04 stsp <td>M</td>
680 8797b228 2019-08-04 stsp <td>modified file</td>
681 8797b228 2019-08-04 stsp </tr>
682 8797b228 2019-08-04 stsp <tr>
683 8797b228 2019-08-04 stsp <td>A</td>
684 8797b228 2019-08-04 stsp <td>file scheduled for addition in next commit</td>
685 8797b228 2019-08-04 stsp </tr>
686 8797b228 2019-08-04 stsp <tr>
687 8797b228 2019-08-04 stsp <td>D</td>
688 8797b228 2019-08-04 stsp <td>file scheduled for deletion in next commit</td>
689 8797b228 2019-08-04 stsp </tr>
690 8797b228 2019-08-04 stsp <tr>
691 8797b228 2019-08-04 stsp <td>C</td>
692 8797b228 2019-08-04 stsp <td>modified or added file which contains merge conflicts</td>
693 8797b228 2019-08-04 stsp </tr>
694 8797b228 2019-08-04 stsp <tr>
695 8797b228 2019-08-04 stsp <td>!</td>
696 8797b228 2019-08-04 stsp <td>versioned file was expected on disk but is missing</td>
697 8797b228 2019-08-04 stsp </tr>
698 8797b228 2019-08-04 stsp <tr>
699 8797b228 2019-08-04 stsp <td>~</td>
700 8797b228 2019-08-04 stsp <td>versioned file is obstructed by a non-regular file</td>
701 8797b228 2019-08-04 stsp </tr>
702 8797b228 2019-08-04 stsp <tr>
703 8797b228 2019-08-04 stsp <td>?</td>
704 8797b228 2019-08-04 stsp <td>unversioned item not tracked by <code class="Nm">got</code></td>
705 ba0a4168 2019-08-26 stsp </tr>
706 ba0a4168 2019-08-26 stsp <tr>
707 d8e62599 2019-10-21 stsp <td>m</td>
708 d8e62599 2019-10-21 stsp <td>modified file modes (executable bit only)</td>
709 d8e62599 2019-10-21 stsp </tr>
710 d8e62599 2019-10-21 stsp <tr>
711 ba0a4168 2019-08-26 stsp <td>N</td>
712 ba0a4168 2019-08-26 stsp <td>non-existent <var class="Ar">path</var> specified on the command
713 ba0a4168 2019-08-26 stsp line</td>
714 8797b228 2019-08-04 stsp </tr>
715 8797b228 2019-08-04 stsp </table>
716 8797b228 2019-08-04 stsp <p class="Pp">If no <var class="Ar">path</var> is specified, show
717 8797b228 2019-08-04 stsp modifications in the entire work tree. Otherwise, show modifications at
718 8797b228 2019-08-04 stsp or within the specified paths.</p>
719 8797b228 2019-08-04 stsp <p class="Pp">If changes have been staged with <code class="Cm">got
720 8797b228 2019-08-04 stsp stage</code>, staged changes are shown in the second output column,
721 8797b228 2019-08-04 stsp using the following status codes:</p>
722 8797b228 2019-08-04 stsp <table class="Bl-column">
723 8797b228 2019-08-04 stsp <tr>
724 8797b228 2019-08-04 stsp <td>M</td>
725 8797b228 2019-08-04 stsp <td>file modification is staged</td>
726 8797b228 2019-08-04 stsp </tr>
727 8797b228 2019-08-04 stsp <tr>
728 8797b228 2019-08-04 stsp <td>A</td>
729 8797b228 2019-08-04 stsp <td>file addition is staged</td>
730 8797b228 2019-08-04 stsp </tr>
731 8797b228 2019-08-04 stsp <tr>
732 8797b228 2019-08-04 stsp <td>D</td>
733 8797b228 2019-08-04 stsp <td>file deletion is staged</td>
734 8797b228 2019-08-04 stsp </tr>
735 8797b228 2019-08-04 stsp </table>
736 fc62dacd 2019-08-08 stsp <p class="Pp">Changes created on top of staged changes are indicated in the
737 fc62dacd 2019-08-08 stsp first column:</p>
738 8797b228 2019-08-04 stsp <table class="Bl-column">
739 8797b228 2019-08-04 stsp <tr>
740 8797b228 2019-08-04 stsp <td>MM</td>
741 fc62dacd 2019-08-08 stsp <td>file was modified after earlier changes have been staged</td>
742 8797b228 2019-08-04 stsp </tr>
743 8797b228 2019-08-04 stsp <tr>
744 8797b228 2019-08-04 stsp <td>MA</td>
745 fc62dacd 2019-08-08 stsp <td>file was modified after having been staged for addition</td>
746 8797b228 2019-08-04 stsp </tr>
747 8797b228 2019-08-04 stsp </table>
748 bd0bf387 2024-04-23 stsp <p class="Pp">If the work tree contains the results of an interrupted
749 bd0bf387 2024-04-23 stsp <code class="Cm">got rebase</code>, <code class="Cm">got
750 bd0bf387 2024-04-23 stsp histedit</code>, or <code class="Cm">got merge</code> operation then
751 bd0bf387 2024-04-23 stsp display a message which shows the branches involved.</p>
752 feee6923 2020-09-17 stsp <p class="Pp">The options for <code class="Cm">got status</code> are as
753 feee6923 2020-09-17 stsp follows:</p>
754 feee6923 2020-09-17 stsp <dl class="Bl-tag">
755 a954aa0a 2021-06-22 stsp <dt id="I~2"><a class="permalink" href="#I~2"><code class="Fl">-I</code></a></dt>
756 a954aa0a 2021-06-22 stsp <dd>Show unversioned files even if they match an ignore pattern.</dd>
757 4448c231 2021-09-15 stsp <dt id="S"><a class="permalink" href="#S"><code class="Fl">-S</code></a>
758 4448c231 2021-09-15 stsp <var class="Ar">status-codes</var></dt>
759 4448c231 2021-09-15 stsp <dd>Suppress the output of files with a modification status matching any
760 4448c231 2021-09-15 stsp of the single-character status codes contained in the
761 4448c231 2021-09-15 stsp <var class="Ar">status-codes</var> argument. Any combination of codes
762 4448c231 2021-09-15 stsp from the above list of possible status codes may be specified. For
763 4448c231 2021-09-15 stsp staged files, status codes displayed in either column will be matched.
764 4448c231 2021-09-15 stsp Cannot be used together with the <code class="Fl">-s</code>
765 4448c231 2021-09-15 stsp option.</dd>
766 63657f42 2022-09-07 stsp <dt id="s"><a class="permalink" href="#s"><code class="Fl">-s</code></a>
767 63657f42 2022-09-07 stsp <var class="Ar">status-codes</var></dt>
768 63657f42 2022-09-07 stsp <dd>Only show files with a modification status matching any of the
769 63657f42 2022-09-07 stsp single-character status codes contained in the
770 63657f42 2022-09-07 stsp <var class="Ar">status-codes</var> argument. Any combination of codes
771 63657f42 2022-09-07 stsp from the above list of possible status codes may be specified. For
772 63657f42 2022-09-07 stsp staged files, status codes displayed in either column will be matched.
773 63657f42 2022-09-07 stsp Cannot be used together with the <code class="Fl">-S</code>
774 63657f42 2022-09-07 stsp option.</dd>
775 feee6923 2020-09-17 stsp </dl>
776 376d4d52 2022-07-04 stsp <p class="Pp">For compatibility with <a class="Xr" aria-label="cvs, section
777 376d4d52 2022-07-04 stsp 1">cvs(1)</a> and <a class="Xr" aria-label="git, section 1">git(1)</a>,
778 376d4d52 2022-07-04 stsp <code class="Cm">got status</code> reads <a class="Xr" aria-label="glob,
779 376d4d52 2022-07-04 stsp section 7">glob(7)</a> patterns from <span class="Pa">.cvsignore</span>
780 376d4d52 2022-07-04 stsp and <span class="Pa">.gitignore</span> files in each traversed directory
781 f6a6fa94 2023-02-22 stsp and will not display unversioned files which match these patterns.
782 f6a6fa94 2023-02-22 stsp Ignore patterns which end with a slash, &#x201C;/&#x201D;, will only
783 f6a6fa94 2023-02-22 stsp match directories. As an extension to <a class="Xr" aria-label="glob,
784 f6a6fa94 2023-02-22 stsp section 7">glob(7)</a> matching rules, <code class="Cm">got
785 f6a6fa94 2023-02-22 stsp status</code> supports consecutive asterisks, &#x201C;**&#x201D;, which
786 f6a6fa94 2023-02-22 stsp will match an arbitrary amount of directories. Unlike
787 f6a6fa94 2023-02-22 stsp <a class="Xr" aria-label="cvs, section 1">cvs(1)</a>,
788 f6a6fa94 2023-02-22 stsp <code class="Cm">got status</code> only supports a single ignore pattern
789 f6a6fa94 2023-02-22 stsp per line. Unlike <a class="Xr" aria-label="git, section 1">git(1)</a>,
790 f6a6fa94 2023-02-22 stsp <code class="Cm">got status</code> does not support negated ignore
791 f6a6fa94 2023-02-22 stsp patterns prefixed with &#x201C;!&#x201D;, and gives no special
792 f6a6fa94 2023-02-22 stsp significance to the location of path component separators,
793 376d4d52 2022-07-04 stsp &#x201C;/&#x201D;, in a pattern.</p>
794 8797b228 2019-08-04 stsp </dd>
795 2dbbbc3a 2020-07-23 stsp <dt id="log"><a class="permalink" href="#log"><code class="Cm">log</code></a>
796 bd0bf387 2024-04-23 stsp [<code class="Fl">-bdPpRst</code>] [<code class="Fl">-C</code>
797 63657f42 2022-09-07 stsp <var class="Ar">number</var>] [<code class="Fl">-c</code>
798 63657f42 2022-09-07 stsp <var class="Ar">commit</var>] [<code class="Fl">-l</code>
799 63657f42 2022-09-07 stsp <var class="Ar">N</var>] [<code class="Fl">-r</code>
800 63657f42 2022-09-07 stsp <var class="Ar">repository-path</var>] [<code class="Fl">-S</code>
801 63657f42 2022-09-07 stsp <var class="Ar">search-pattern</var>] [<code class="Fl">-x</code>
802 a701a2ae 2022-06-17 stsp <var class="Ar">commit</var>] [<var class="Ar">path</var>]</dt>
803 8797b228 2019-08-04 stsp <dd>Display history of a repository. If a <var class="Ar">path</var> is
804 7c3b4ab8 2020-02-25 stsp specified, show only commits which modified this path. If invoked in a
805 7c3b4ab8 2020-02-25 stsp work tree, the <var class="Ar">path</var> is interpreted relative to the
806 7c3b4ab8 2020-02-25 stsp current working directory, and the work tree's path prefix is implicitly
807 7c3b4ab8 2020-02-25 stsp prepended. Otherwise, the path is interpreted relative to the repository
808 7c3b4ab8 2020-02-25 stsp root.
809 8797b228 2019-08-04 stsp <p class="Pp">The options for <code class="Cm">got log</code> are as
810 8797b228 2019-08-04 stsp follows:</p>
811 8797b228 2019-08-04 stsp <dl class="Bl-tag">
812 56f3f26e 2024-06-03 stsp <dt id="b~7"><a class="permalink" href="#b~7"><code class="Fl">-b</code></a></dt>
813 8b679b4b 2020-02-17 stsp <dd>Display individual commits which were merged into the current branch
814 8b679b4b 2020-02-17 stsp from other branches. By default, <code class="Cm">got log</code> shows
815 8b679b4b 2020-02-17 stsp the linear history of the current branch only.</dd>
816 63657f42 2022-09-07 stsp <dt id="C"><a class="permalink" href="#C"><code class="Fl">-C</code></a>
817 63657f42 2022-09-07 stsp <var class="Ar">number</var></dt>
818 63657f42 2022-09-07 stsp <dd>Set the number of context lines shown in diffs with
819 63657f42 2022-09-07 stsp <code class="Fl">-p</code>. By default, 3 lines of context are
820 63657f42 2022-09-07 stsp shown.</dd>
821 2dbbbc3a 2020-07-23 stsp <dt id="c~3"><a class="permalink" href="#c~3"><code class="Fl">-c</code></a>
822 8797b228 2019-08-04 stsp <var class="Ar">commit</var></dt>
823 8797b228 2019-08-04 stsp <dd>Start traversing history at the specified
824 461d9094 2023-07-19 stsp <var class="Ar">commit</var>. If this option is not specified, default
825 461d9094 2023-07-19 stsp to the work tree's current branch if invoked in a work tree, or to the
826 461d9094 2023-07-19 stsp repository's HEAD reference.
827 461d9094 2023-07-19 stsp <p class="Pp" id="bar:+3">The expected <var class="Ar">commit</var>
828 b183145b 2024-08-14 op argument is a commit ID, or a reference name or a keyword which will
829 b183145b 2024-08-14 op be resolved to a commit ID. An abbreviated hash argument will be
830 b183145b 2024-08-14 op expanded to a full commit ID automatically, provided the
831 461d9094 2023-07-19 stsp abbreviation is unique. The keywords &quot;:base&quot; and
832 461d9094 2023-07-19 stsp &quot;:head&quot; resolve to the work tree's base commit and branch
833 461d9094 2023-07-19 stsp head, respectively. The former is only valid if invoked in a work
834 461d9094 2023-07-19 stsp tree, while the latter will resolve to the tip of the work tree's
835 461d9094 2023-07-19 stsp current branch if invoked in a work tree, otherwise it will resolve
836 461d9094 2023-07-19 stsp to the repository's HEAD reference. Keywords and references may be
837 461d9094 2023-07-19 stsp appended with &quot;:+&quot; or &quot;:-&quot; modifiers and an
838 461d9094 2023-07-19 stsp optional integer N to denote the Nth descendant or antecedent,
839 461d9094 2023-07-19 stsp respectively, by first parent traversal; for example,
840 461d9094 2023-07-19 stsp <b class="Sy">:head:-2</b> denotes the HEAD reference's 2nd
841 461d9094 2023-07-19 stsp generation ancestor, and <b class="Sy">:base:+4</b> denotes the 4th
842 461d9094 2023-07-19 stsp generation descendant of the work tree's base commit. Similarly,
843 461d9094 2023-07-19 stsp <a class="permalink" href="#bar:+3"><b class="Sy">bar:+3</b></a>
844 461d9094 2023-07-19 stsp will denote the 3rd generation descendant of the commit resolved by
845 461d9094 2023-07-19 stsp the &quot;bar&quot; reference. A &quot;:+&quot; or &quot;:-&quot;
846 461d9094 2023-07-19 stsp modifier without a trailing integer has an implicit &quot;1&quot;
847 461d9094 2023-07-19 stsp appended (e.g., <b class="Sy">:base:+</b> is equivalent to
848 461d9094 2023-07-19 stsp <b class="Sy">:base:+1</b>).</p>
849 461d9094 2023-07-19 stsp </dd>
850 47f19dd5 2023-01-17 stsp <dt id="d~2"><a class="permalink" href="#d~2"><code class="Fl">-d</code></a></dt>
851 47f19dd5 2023-01-17 stsp <dd>Display diffstat of changes introduced in each commit. Cannot be used
852 a8f7f066 2023-08-29 stsp with the <code class="Fl">-s</code> option. Implies the
853 a8f7f066 2023-08-29 stsp <code class="Fl">-P</code> option (diffstat displays a list of changed
854 a8f7f066 2023-08-29 stsp paths).</dd>
855 2dbbbc3a 2020-07-23 stsp <dt id="l~3"><a class="permalink" href="#l~3"><code class="Fl">-l</code></a>
856 8797b228 2019-08-04 stsp <var class="Ar">N</var></dt>
857 91b3da3f 2019-08-18 stsp <dd>Limit history traversal to a given number of commits. If this option
858 91b3da3f 2019-08-18 stsp is not specified, a default limit value of zero is used, which is
859 91b3da3f 2019-08-18 stsp treated as an unbounded limit. The
860 91b3da3f 2019-08-18 stsp <code class="Ev">GOT_LOG_DEFAULT_LIMIT</code> environment variable may
861 91b3da3f 2019-08-18 stsp be set to change this default value.</dd>
862 2dbbbc3a 2020-07-23 stsp <dt id="P"><a class="permalink" href="#P"><code class="Fl">-P</code></a></dt>
863 ec51d4a3 2020-05-05 stsp <dd>Display the list of file paths changed in each commit, using the
864 ec51d4a3 2020-05-05 stsp following status codes:
865 ec51d4a3 2020-05-05 stsp <table class="Bl-column">
866 ec51d4a3 2020-05-05 stsp <tr>
867 ec51d4a3 2020-05-05 stsp <td>M</td>
868 ec51d4a3 2020-05-05 stsp <td>modified file</td>
869 ec51d4a3 2020-05-05 stsp </tr>
870 ec51d4a3 2020-05-05 stsp <tr>
871 ec51d4a3 2020-05-05 stsp <td>D</td>
872 ec51d4a3 2020-05-05 stsp <td>file was deleted</td>
873 ec51d4a3 2020-05-05 stsp </tr>
874 ec51d4a3 2020-05-05 stsp <tr>
875 ec51d4a3 2020-05-05 stsp <td>A</td>
876 ec51d4a3 2020-05-05 stsp <td>new file was added</td>
877 ec51d4a3 2020-05-05 stsp </tr>
878 ec51d4a3 2020-05-05 stsp <tr>
879 ec51d4a3 2020-05-05 stsp <td>m</td>
880 ec51d4a3 2020-05-05 stsp <td>modified file modes (executable bit only)</td>
881 ec51d4a3 2020-05-05 stsp </tr>
882 ec51d4a3 2020-05-05 stsp </table>
883 a701a2ae 2022-06-17 stsp <p class="Pp">Cannot be used with the <code class="Fl">-s</code>
884 a701a2ae 2022-06-17 stsp option.</p>
885 ec51d4a3 2020-05-05 stsp </dd>
886 63657f42 2022-09-07 stsp <dt id="p~2"><a class="permalink" href="#p~2"><code class="Fl">-p</code></a></dt>
887 63657f42 2022-09-07 stsp <dd>Display the patch of modifications made in each commit. If a
888 63657f42 2022-09-07 stsp <var class="Ar">path</var> is specified, only show the patch of
889 63657f42 2022-09-07 stsp modifications at or within this path. Cannot be used with the
890 63657f42 2022-09-07 stsp <code class="Fl">-s</code> option.</dd>
891 63657f42 2022-09-07 stsp <dt id="R~3"><a class="permalink" href="#R~3"><code class="Fl">-R</code></a></dt>
892 63657f42 2022-09-07 stsp <dd>Determine a set of commits to display as usual, but display these
893 63657f42 2022-09-07 stsp commits in reverse order.</dd>
894 63657f42 2022-09-07 stsp <dt id="r~3"><a class="permalink" href="#r~3"><code class="Fl">-r</code></a>
895 63657f42 2022-09-07 stsp <var class="Ar">repository-path</var></dt>
896 63657f42 2022-09-07 stsp <dd>Use the repository at the specified path. If not specified, assume the
897 63657f42 2022-09-07 stsp repository is located at or above the current working directory. If
898 63657f42 2022-09-07 stsp this directory is a <code class="Nm">got</code> work tree, use the
899 63657f42 2022-09-07 stsp repository path associated with this work tree.</dd>
900 a701a2ae 2022-06-17 stsp <dt id="S~2"><a class="permalink" href="#S~2"><code class="Fl">-S</code></a>
901 8b679b4b 2020-02-17 stsp <var class="Ar">search-pattern</var></dt>
902 a701a2ae 2022-06-17 stsp <dd>If specified, show only commits with a log message, author name,
903 b183145b 2024-08-14 op committer name, or commit ID matched by the extended regular
904 a701a2ae 2022-06-17 stsp expression <var class="Ar">search-pattern</var>. Lines in committed
905 a701a2ae 2022-06-17 stsp patches will be matched if <code class="Fl">-p</code> is specified.
906 a701a2ae 2022-06-17 stsp File paths changed by a commit will be matched if
907 a701a2ae 2022-06-17 stsp <code class="Fl">-P</code> is specified. Regular expression syntax is
908 376d4d52 2022-07-04 stsp documented in <a class="Xr" aria-label="re_format, section
909 376d4d52 2022-07-04 stsp 7">re_format(7)</a>.</dd>
910 63657f42 2022-09-07 stsp <dt id="s~2"><a class="permalink" href="#s~2"><code class="Fl">-s</code></a></dt>
911 63657f42 2022-09-07 stsp <dd>Display a short one-line summary of each commit, instead of the
912 63657f42 2022-09-07 stsp default history format. Cannot be used together with the
913 63657f42 2022-09-07 stsp <code class="Fl">-p</code> or <code class="Fl">-P</code> option.</dd>
914 bd0bf387 2024-04-23 stsp <dt id="t~2"><a class="permalink" href="#t~2"><code class="Fl">-t</code></a></dt>
915 bd0bf387 2024-04-23 stsp <dd>Display commits in topological order. This option has no effect
916 bd0bf387 2024-04-23 stsp without the <code class="Fl">-b</code> option because a linear history
917 bd0bf387 2024-04-23 stsp is sorted in topological order by definition. Topological sorting is
918 bd0bf387 2024-04-23 stsp disabled by default because the present implementation requires that
919 bd0bf387 2024-04-23 stsp commit history is fully traversed before any output can be shown.</dd>
920 2dbbbc3a 2020-07-23 stsp <dt id="x"><a class="permalink" href="#x"><code class="Fl">-x</code></a>
921 a462773e 2020-04-19 stsp <var class="Ar">commit</var></dt>
922 039953c9 2021-03-22 stsp <dd>Stop traversing commit history immediately after the specified
923 a8f7f066 2023-08-29 stsp <var class="Ar">commit</var> has been traversed. Like
924 a8f7f066 2023-08-29 stsp <code class="Fl">-c</code>, the expected <var class="Ar">commit</var>
925 b183145b 2024-08-14 op argument is a commit ID, or a reference name or a keyword which will
926 b183145b 2024-08-14 op be resolved to a commit ID. This option has no effect if the specified
927 b183145b 2024-08-14 op <var class="Ar">commit</var> is never traversed.</dd>
928 8797b228 2019-08-04 stsp </dl>
929 8797b228 2019-08-04 stsp </dd>
930 63b69821 2021-10-16 stsp <dt id="di"><a class="permalink" href="#diff"><code class="Cm" id="diff">diff</code></a>
931 47f19dd5 2023-01-17 stsp [<code class="Fl">-adPsw</code>] [<code class="Fl">-C</code>
932 63657f42 2022-09-07 stsp <var class="Ar">number</var>] [<code class="Fl">-c</code>
933 63657f42 2022-09-07 stsp <var class="Ar">commit</var>] [<code class="Fl">-r</code>
934 63657f42 2022-09-07 stsp <var class="Ar">repository-path</var>] [<var class="Ar">object1</var>
935 63657f42 2022-09-07 stsp <var class="Ar">object2</var> | <var class="Ar">path ...</var>]</dt>
936 63b69821 2021-10-16 stsp <dd>
937 63b69821 2021-10-16 stsp <div class="Bd Bd-indent"><code class="Li">(alias:
938 46043f6f 2021-11-23 stsp <code class="Cm">di</code>)</code></div>
939 46043f6f 2021-11-23 stsp When invoked within a work tree without any arguments, display all local
940 63b69821 2021-10-16 stsp changes in the work tree. If one or more <var class="Ar">path</var>
941 63b69821 2021-10-16 stsp arguments are specified, only show changes within the specified paths.
942 8797b228 2019-08-04 stsp <p class="Pp">If two arguments are provided, treat each argument as a
943 b183145b 2024-08-14 op reference, a tag name, or an object ID, and display differences between
944 b183145b 2024-08-14 op the corresponding objects. Both objects must be of the same type (blobs,
945 b183145b 2024-08-14 op trees, or commits). An abbreviated hash argument will be expanded to a
946 b183145b 2024-08-14 op full commit ID automatically, provided the abbreviation is unique. If
947 b183145b 2024-08-14 op none of these interpretations produce a valid result or if the
948 b183145b 2024-08-14 op <code class="Fl">-P</code> option is used, and if <code class="Cm">got
949 b183145b 2024-08-14 op diff</code> is running in a work tree, attempt to interpret the two
950 b183145b 2024-08-14 op arguments as paths.</p>
951 8797b228 2019-08-04 stsp <p class="Pp">The options for <code class="Cm">got diff</code> are as
952 8797b228 2019-08-04 stsp follows:</p>
953 8797b228 2019-08-04 stsp <dl class="Bl-tag">
954 1b792db0 2020-12-13 stsp <dt id="a~3"><a class="permalink" href="#a~3"><code class="Fl">-a</code></a></dt>
955 1b792db0 2020-12-13 stsp <dd>Treat file contents as ASCII text even if binary data is
956 1b792db0 2020-12-13 stsp detected.</dd>
957 63657f42 2022-09-07 stsp <dt id="C~2"><a class="permalink" href="#C~2"><code class="Fl">-C</code></a>
958 63657f42 2022-09-07 stsp <var class="Ar">number</var></dt>
959 63657f42 2022-09-07 stsp <dd>Set the number of context lines shown in the diff. By default, 3 lines
960 63657f42 2022-09-07 stsp of context are shown.</dd>
961 63b69821 2021-10-16 stsp <dt id="c~4"><a class="permalink" href="#c~4"><code class="Fl">-c</code></a>
962 63b69821 2021-10-16 stsp <var class="Ar">commit</var></dt>
963 63657f42 2022-09-07 stsp <dd>Show differences between commits in the repository. This option may be
964 63657f42 2022-09-07 stsp used up to two times. When used only once, show differences between
965 63b69821 2021-10-16 stsp the specified <var class="Ar">commit</var> and its first parent
966 63b69821 2021-10-16 stsp commit. When used twice, show differences between the two specified
967 63b69821 2021-10-16 stsp commits.
968 63b69821 2021-10-16 stsp <p class="Pp">If the <code class="Fl">-c</code> option is used, all
969 63b69821 2021-10-16 stsp non-option arguments will be interpreted as paths. If one or more
970 63b69821 2021-10-16 stsp such <var class="Ar">path</var> arguments are provided, only show
971 63b69821 2021-10-16 stsp differences for the specified paths.</p>
972 461d9094 2023-07-19 stsp <p class="Pp" id="baz:+8">The expected <var class="Ar">commit</var>
973 b183145b 2024-08-14 op argument is a commit ID, or a reference name or a keyword which will
974 b183145b 2024-08-14 op be resolved to a commit ID. An abbreviated hash argument will be
975 b183145b 2024-08-14 op expanded to a full commit ID automatically, provided the
976 461d9094 2023-07-19 stsp abbreviation is unique. The keywords &quot;:base&quot; and
977 461d9094 2023-07-19 stsp &quot;:head&quot; resolve to the work tree's base commit and branch
978 461d9094 2023-07-19 stsp head, respectively. The former is only valid if invoked in a work
979 461d9094 2023-07-19 stsp tree, while the latter will resolve to the tip of the work tree's
980 461d9094 2023-07-19 stsp current branch if invoked in a work tree, otherwise it will resolve
981 461d9094 2023-07-19 stsp to the repository's HEAD reference. Keywords and references may be
982 461d9094 2023-07-19 stsp appended with &quot;:+&quot; or &quot;:-&quot; modifiers and an
983 461d9094 2023-07-19 stsp optional integer N to denote the Nth descendant or antecedent,
984 461d9094 2023-07-19 stsp respectively, by first parent traversal; for example,
985 461d9094 2023-07-19 stsp <b class="Sy">:head:-2</b> denotes the HEAD reference's 2nd
986 461d9094 2023-07-19 stsp generation ancestor, and <b class="Sy">:base:+4</b> denotes the 4th
987 461d9094 2023-07-19 stsp generation descendant of the work tree's base commit. Similarly,
988 461d9094 2023-07-19 stsp <a class="permalink" href="#baz:+8"><b class="Sy">baz:+8</b></a>
989 461d9094 2023-07-19 stsp will denote the 8th generation descendant of the commit resolved by
990 461d9094 2023-07-19 stsp the &quot;baz&quot; reference. If an integer does not follow the
991 461d9094 2023-07-19 stsp &quot;:+&quot; or &quot;:-&quot; modifier, a &quot;1&quot; is
992 461d9094 2023-07-19 stsp implicitly appended (e.g., <b class="Sy">:head:-</b> is equivalent
993 461d9094 2023-07-19 stsp to <b class="Sy">:head:-1</b>).</p>
994 63b69821 2021-10-16 stsp <p class="Pp">Cannot be used together with the
995 63b69821 2021-10-16 stsp <code class="Fl">-P</code> option.</p>
996 63b69821 2021-10-16 stsp </dd>
997 47f19dd5 2023-01-17 stsp <dt id="d~3"><a class="permalink" href="#d~3"><code class="Fl">-d</code></a></dt>
998 47f19dd5 2023-01-17 stsp <dd>Display diffstat of changes before the actual diff by annotating each
999 47f19dd5 2023-01-17 stsp file path or blob hash being diffed with the total number of lines
1000 47f19dd5 2023-01-17 stsp added and removed. A summary line will display the total number of
1001 47f19dd5 2023-01-17 stsp changes across all files.</dd>
1002 63657f42 2022-09-07 stsp <dt id="P~2"><a class="permalink" href="#P~2"><code class="Fl">-P</code></a></dt>
1003 63657f42 2022-09-07 stsp <dd>Interpret all arguments as paths only. This option can be used to
1004 63657f42 2022-09-07 stsp resolve ambiguity in cases where paths look like tag names, reference
1005 63657f42 2022-09-07 stsp names, or object IDs. This option is only valid when
1006 63657f42 2022-09-07 stsp <code class="Cm">got diff</code> is invoked in a work tree.</dd>
1007 2dbbbc3a 2020-07-23 stsp <dt id="r~4"><a class="permalink" href="#r~4"><code class="Fl">-r</code></a>
1008 8797b228 2019-08-04 stsp <var class="Ar">repository-path</var></dt>
1009 8797b228 2019-08-04 stsp <dd>Use the repository at the specified path. If not specified, assume the
1010 8797b228 2019-08-04 stsp repository is located at or above the current working directory. If
1011 8797b228 2019-08-04 stsp this directory is a <code class="Nm">got</code> work tree, use the
1012 8797b228 2019-08-04 stsp repository path associated with this work tree.</dd>
1013 feee6923 2020-09-17 stsp <dt id="s~3"><a class="permalink" href="#s~3"><code class="Fl">-s</code></a></dt>
1014 8797b228 2019-08-04 stsp <dd>Show changes staged with <code class="Cm">got stage</code> instead of
1015 a462773e 2020-04-19 stsp showing local changes in the work tree. This option is only valid when
1016 8797b228 2019-08-04 stsp <code class="Cm">got diff</code> is invoked in a work tree.</dd>
1017 2dbbbc3a 2020-07-23 stsp <dt id="w"><a class="permalink" href="#w"><code class="Fl">-w</code></a></dt>
1018 d8e62599 2019-10-21 stsp <dd>Ignore whitespace-only changes.</dd>
1019 8797b228 2019-08-04 stsp </dl>
1020 8797b228 2019-08-04 stsp </dd>
1021 63b69821 2021-10-16 stsp <dt id="bl"><a class="permalink" href="#blame"><code class="Cm" id="blame">blame</code></a>
1022 8797b228 2019-08-04 stsp [<code class="Fl">-c</code> <var class="Ar">commit</var>]
1023 8797b228 2019-08-04 stsp [<code class="Fl">-r</code> <var class="Ar">repository-path</var>]
1024 8797b228 2019-08-04 stsp <var class="Ar">path</var></dt>
1025 63b69821 2021-10-16 stsp <dd>
1026 63b69821 2021-10-16 stsp <div class="Bd Bd-indent"><code class="Li">(alias:
1027 46043f6f 2021-11-23 stsp <code class="Cm">bl</code>)</code></div>
1028 46043f6f 2021-11-23 stsp Display line-by-line history of a file at the specified path.
1029 8797b228 2019-08-04 stsp <p class="Pp">The options for <code class="Cm">got blame</code> are as
1030 8797b228 2019-08-04 stsp follows:</p>
1031 8797b228 2019-08-04 stsp <dl class="Bl-tag">
1032 63b69821 2021-10-16 stsp <dt id="c~5"><a class="permalink" href="#c~5"><code class="Fl">-c</code></a>
1033 8797b228 2019-08-04 stsp <var class="Ar">commit</var></dt>
1034 8797b228 2019-08-04 stsp <dd>Start traversing history at the specified
1035 b183145b 2024-08-14 op <var class="Ar">commit</var>. The expected argument is a commit ID, or
1036 b183145b 2024-08-14 op a reference name or a keyword which will be resolved to a commit ID.
1037 b183145b 2024-08-14 op An abbreviated hash argument will be expanded to a full commit ID
1038 b183145b 2024-08-14 op automatically, provided the abbreviation is unique. The keywords
1039 b183145b 2024-08-14 op &quot;:base&quot; and &quot;:head&quot; resolve to the work tree's
1040 b183145b 2024-08-14 op base commit and branch head, respectively. The former is only valid if
1041 b183145b 2024-08-14 op invoked in a work tree, while the latter will resolve to the tip of
1042 b183145b 2024-08-14 op the work tree's current branch if invoked in a work tree, otherwise it
1043 b183145b 2024-08-14 op will resolve to the repository's HEAD reference. Keywords and
1044 b183145b 2024-08-14 op references may be appended with &quot;:+&quot; or &quot;:-&quot;
1045 461d9094 2023-07-19 stsp modifiers and an optional integer N to denote the Nth descendant or
1046 461d9094 2023-07-19 stsp antecedent by first parent traversal, respectively; for example,
1047 461d9094 2023-07-19 stsp <b class="Sy">:head:-2</b> denotes the work tree branch head's 2nd
1048 461d9094 2023-07-19 stsp generation ancestor, and <b class="Sy">:base:+4</b> denotes the 4th
1049 461d9094 2023-07-19 stsp generation descendant of the work tree's base commit. Similarly,
1050 461d9094 2023-07-19 stsp <a class="permalink" href="#xyz:-5"><b class="Sy" id="xyz:-5">xyz:-5</b></a>
1051 461d9094 2023-07-19 stsp will denote the 5th generation ancestor of the commit resolved by the
1052 461d9094 2023-07-19 stsp &quot;xyz&quot; reference. A &quot;:+&quot; or &quot;:-&quot; modifier
1053 461d9094 2023-07-19 stsp without a trailing integer has an implicit &quot;1&quot; appended
1054 461d9094 2023-07-19 stsp (e.g., <b class="Sy">:base:+</b> is equivalent to
1055 461d9094 2023-07-19 stsp <b class="Sy">:base:+1</b>).</dd>
1056 2dbbbc3a 2020-07-23 stsp <dt id="r~5"><a class="permalink" href="#r~5"><code class="Fl">-r</code></a>
1057 8797b228 2019-08-04 stsp <var class="Ar">repository-path</var></dt>
1058 8797b228 2019-08-04 stsp <dd>Use the repository at the specified path. If not specified, assume the
1059 8797b228 2019-08-04 stsp repository is located at or above the current working directory. If
1060 8797b228 2019-08-04 stsp this directory is a <code class="Nm">got</code> work tree, use the
1061 8797b228 2019-08-04 stsp repository path associated with this work tree.</dd>
1062 8797b228 2019-08-04 stsp </dl>
1063 8797b228 2019-08-04 stsp </dd>
1064 63b69821 2021-10-16 stsp <dt id="tr"><a class="permalink" href="#tree"><code class="Cm" id="tree">tree</code></a>
1065 63657f42 2022-09-07 stsp [<code class="Fl">-iR</code>] [<code class="Fl">-c</code>
1066 63657f42 2022-09-07 stsp <var class="Ar">commit</var>] [<code class="Fl">-r</code>
1067 63657f42 2022-09-07 stsp <var class="Ar">repository-path</var>] [<var class="Ar">path</var>]</dt>
1068 63b69821 2021-10-16 stsp <dd>
1069 63b69821 2021-10-16 stsp <div class="Bd Bd-indent"><code class="Li">(alias:
1070 46043f6f 2021-11-23 stsp <code class="Cm">tr</code>)</code></div>
1071 46043f6f 2021-11-23 stsp Display a listing of files and directories at the specified directory path
1072 8797b228 2019-08-04 stsp in the repository. Entries shown in this listing may carry one of the
1073 8797b228 2019-08-04 stsp following trailing annotations:
1074 8797b228 2019-08-04 stsp <table class="Bl-column">
1075 e8022e04 2019-08-13 stsp <tr>
1076 e8022e04 2019-08-13 stsp <td>@</td>
1077 e8022e04 2019-08-13 stsp <td>entry is a symbolic link</td>
1078 e8022e04 2019-08-13 stsp </tr>
1079 8797b228 2019-08-04 stsp <tr>
1080 8797b228 2019-08-04 stsp <td>/</td>
1081 8797b228 2019-08-04 stsp <td>entry is a directory</td>
1082 8797b228 2019-08-04 stsp </tr>
1083 8797b228 2019-08-04 stsp <tr>
1084 8797b228 2019-08-04 stsp <td>*</td>
1085 8797b228 2019-08-04 stsp <td>entry is an executable file</td>
1086 8797b228 2019-08-04 stsp </tr>
1087 ba0a4168 2019-08-26 stsp <tr>
1088 ba0a4168 2019-08-26 stsp <td>$</td>
1089 ba0a4168 2019-08-26 stsp <td>entry is a Git submodule</td>
1090 ba0a4168 2019-08-26 stsp </tr>
1091 8797b228 2019-08-04 stsp </table>
1092 2dbbbc3a 2020-07-23 stsp <p class="Pp">Symbolic link entries are also annotated with the target path
1093 2dbbbc3a 2020-07-23 stsp of the link.</p>
1094 8797b228 2019-08-04 stsp <p class="Pp">If no <var class="Ar">path</var> is specified, list the
1095 8797b228 2019-08-04 stsp repository path corresponding to the current directory of the work tree,
1096 8797b228 2019-08-04 stsp or the root directory of the repository if there is no work tree.</p>
1097 8797b228 2019-08-04 stsp <p class="Pp">The options for <code class="Cm">got tree</code> are as
1098 8797b228 2019-08-04 stsp follows:</p>
1099 8797b228 2019-08-04 stsp <dl class="Bl-tag">
1100 63b69821 2021-10-16 stsp <dt id="c~6"><a class="permalink" href="#c~6"><code class="Fl">-c</code></a>
1101 8797b228 2019-08-04 stsp <var class="Ar">commit</var></dt>
1102 8797b228 2019-08-04 stsp <dd>List files and directories as they appear in the specified
1103 461d9094 2023-07-19 stsp <var class="Ar">commit</var>.
1104 b183145b 2024-08-14 op <p class="Pp" id="spam:-3">The expected argument is a commit ID, or a
1105 b183145b 2024-08-14 op reference name or a keyword which will be resolved to a commit ID.
1106 b183145b 2024-08-14 op An abbreviated hash argument will be expanded to a full commit ID
1107 b183145b 2024-08-14 op automatically, provided the abbreviation is unique. The keywords
1108 b183145b 2024-08-14 op &quot;:base&quot; and &quot;:head&quot; resolve to the work tree's
1109 b183145b 2024-08-14 op base commit and branch head, respectively. The former is only valid
1110 b183145b 2024-08-14 op if invoked in a work tree, while the latter will resolve to the tip
1111 b183145b 2024-08-14 op of the work tree's current branch if invoked in a work tree,
1112 461d9094 2023-07-19 stsp otherwise it will resolve to the repository's HEAD reference.
1113 461d9094 2023-07-19 stsp Keywords and references may be appended with &quot;:+&quot; or
1114 461d9094 2023-07-19 stsp &quot;:-&quot; modifiers and an optional integer N to denote the Nth
1115 461d9094 2023-07-19 stsp descendant or antecedent by first parent traversal, respectively;
1116 461d9094 2023-07-19 stsp for example, <b class="Sy">:head:-2</b> denotes the work tree branch
1117 461d9094 2023-07-19 stsp head's 2nd generation ancestor, and <b class="Sy">:base:+4</b>
1118 461d9094 2023-07-19 stsp denotes the 4th generation descendant of the work tree's base
1119 461d9094 2023-07-19 stsp commit. Similarly,
1120 461d9094 2023-07-19 stsp <a class="permalink" href="#spam:-3"><b class="Sy">spam:-3</b></a>
1121 461d9094 2023-07-19 stsp will denote the 3rd generation ancestor of the commit resolved by
1122 461d9094 2023-07-19 stsp the &quot;spam&quot; reference. A &quot;:+&quot; or &quot;:-&quot;
1123 461d9094 2023-07-19 stsp modifier without a trailing integer has an implicit &quot;1&quot;
1124 461d9094 2023-07-19 stsp appended (e.g., <b class="Sy">:base:+</b> is equivalent to
1125 461d9094 2023-07-19 stsp <b class="Sy">:base:+1</b>).</p>
1126 461d9094 2023-07-19 stsp </dd>
1127 63657f42 2022-09-07 stsp <dt id="i"><a class="permalink" href="#i"><code class="Fl">-i</code></a></dt>
1128 63657f42 2022-09-07 stsp <dd>Show object IDs of files (blob objects) and directories (tree
1129 63657f42 2022-09-07 stsp objects).</dd>
1130 63657f42 2022-09-07 stsp <dt id="R~4"><a class="permalink" href="#R~4"><code class="Fl">-R</code></a></dt>
1131 63657f42 2022-09-07 stsp <dd>Recurse into sub-directories in the repository.</dd>
1132 2dbbbc3a 2020-07-23 stsp <dt id="r~6"><a class="permalink" href="#r~6"><code class="Fl">-r</code></a>
1133 8797b228 2019-08-04 stsp <var class="Ar">repository-path</var></dt>
1134 8797b228 2019-08-04 stsp <dd>Use the repository at the specified path. If not specified, assume the
1135 8797b228 2019-08-04 stsp repository is located at or above the current working directory. If
1136 8797b228 2019-08-04 stsp this directory is a <code class="Nm">got</code> work tree, use the
1137 8797b228 2019-08-04 stsp repository path associated with this work tree.</dd>
1138 8797b228 2019-08-04 stsp </dl>
1139 8797b228 2019-08-04 stsp </dd>
1140 2dbbbc3a 2020-07-23 stsp <dt id="ref"><a class="permalink" href="#ref"><code class="Cm">ref</code></a>
1141 63657f42 2022-09-07 stsp [<code class="Fl">-dlt</code>] [<code class="Fl">-c</code>
1142 63657f42 2022-09-07 stsp <var class="Ar">object</var>] [<code class="Fl">-r</code>
1143 63657f42 2022-09-07 stsp <var class="Ar">repository-path</var>] [<code class="Fl">-s</code>
1144 63657f42 2022-09-07 stsp <var class="Ar">reference</var>] [<var class="Ar">name</var>]</dt>
1145 8797b228 2019-08-04 stsp <dd>Manage references in a repository.
1146 b213cbf7 2020-03-23 stsp <p class="Pp">References may be listed, created, deleted, and changed. When
1147 b213cbf7 2020-03-23 stsp creating, deleting, or changing a reference the specified
1148 b213cbf7 2020-03-23 stsp <var class="Ar">name</var> must be an absolute reference name, i.e. it
1149 b213cbf7 2020-03-23 stsp must begin with &#x201C;refs/&#x201D;.</p>
1150 8797b228 2019-08-04 stsp <p class="Pp">The options for <code class="Cm">got ref</code> are as
1151 8797b228 2019-08-04 stsp follows:</p>
1152 8797b228 2019-08-04 stsp <dl class="Bl-tag">
1153 63b69821 2021-10-16 stsp <dt id="c~7"><a class="permalink" href="#c~7"><code class="Fl">-c</code></a>
1154 b213cbf7 2020-03-23 stsp <var class="Ar">object</var></dt>
1155 b213cbf7 2020-03-23 stsp <dd>Create a reference or change an existing reference. The reference with
1156 b213cbf7 2020-03-23 stsp the specified <var class="Ar">name</var> will point at the specified
1157 461d9094 2023-07-19 stsp <var class="Ar">object</var>.
1158 461d9094 2023-07-19 stsp <p class="Pp" id="tagged:-3">The expected <var class="Ar">object</var>
1159 b183145b 2024-08-14 op argument is an object ID or an existing reference or tag name or a
1160 b183145b 2024-08-14 op keyword which will be resolved to the ID of a corresponding commit,
1161 b183145b 2024-08-14 op tree, tag, or blob object. An abbreviated hash argument will be
1162 b183145b 2024-08-14 op expanded to a full commit ID automatically, provided the
1163 461d9094 2023-07-19 stsp abbreviation is unique. The keywords &quot;:base&quot; and
1164 461d9094 2023-07-19 stsp &quot;:head&quot; resolve to the work tree's base commit and branch
1165 461d9094 2023-07-19 stsp head, respectively. The former is only valid if invoked in a work
1166 461d9094 2023-07-19 stsp tree, while the latter will resolve to the tip of the work tree's
1167 461d9094 2023-07-19 stsp current branch if invoked in a work tree, otherwise it will resolve
1168 461d9094 2023-07-19 stsp to the repository's HEAD reference. Keywords and reference names may
1169 461d9094 2023-07-19 stsp be appended with &quot;:+&quot; or &quot;:-&quot; modifiers and an
1170 461d9094 2023-07-19 stsp optional integer N to denote the Nth descendant or antecedent by
1171 461d9094 2023-07-19 stsp first parent traversal, respectively; for example,
1172 461d9094 2023-07-19 stsp <b class="Sy">:head:-2</b> denotes the work tree branch head's 2nd
1173 461d9094 2023-07-19 stsp generation ancestor, and
1174 461d9094 2023-07-19 stsp <a class="permalink" href="#tagged:-3"><b class="Sy">tagged:-3</b></a>
1175 461d9094 2023-07-19 stsp will denote the 3rd generation ancestor of the commit resolved by
1176 461d9094 2023-07-19 stsp the &quot;tagged&quot; reference. If an integer does not follow the
1177 461d9094 2023-07-19 stsp &quot;:+&quot; or &quot;:-&quot; modifier, a &quot;1&quot; is
1178 461d9094 2023-07-19 stsp implicitly appended (e.g., <b class="Sy">:head:-</b> is equivalent
1179 461d9094 2023-07-19 stsp to <b class="Sy">:head:-1</b>).</p>
1180 461d9094 2023-07-19 stsp <p class="Pp">Cannot be used together with any other options except
1181 461d9094 2023-07-19 stsp <code class="Fl">-r</code>.</p>
1182 461d9094 2023-07-19 stsp </dd>
1183 47f19dd5 2023-01-17 stsp <dt id="d~4"><a class="permalink" href="#d~4"><code class="Fl">-d</code></a></dt>
1184 63657f42 2022-09-07 stsp <dd>Delete the reference with the specified <var class="Ar">name</var>
1185 63657f42 2022-09-07 stsp from the repository. Any commit, tree, tag, and blob objects belonging
1186 63657f42 2022-09-07 stsp to deleted references remain in the repository and may be removed
1187 63657f42 2022-09-07 stsp separately with Git's garbage collector or <code class="Cm">gotadmin
1188 63657f42 2022-09-07 stsp cleanup</code>. Cannot be used together with any other options except
1189 63657f42 2022-09-07 stsp <code class="Fl">-r</code>.</dd>
1190 63657f42 2022-09-07 stsp <dt id="l~4"><a class="permalink" href="#l~4"><code class="Fl">-l</code></a></dt>
1191 63657f42 2022-09-07 stsp <dd>List references in the repository. If no <var class="Ar">name</var> is
1192 63657f42 2022-09-07 stsp specified, list all existing references in the repository. If
1193 63657f42 2022-09-07 stsp <var class="Ar">name</var> is a reference namespace, list all
1194 63657f42 2022-09-07 stsp references in this namespace. Otherwise, show only the reference with
1195 63657f42 2022-09-07 stsp the given <var class="Ar">name</var>. Cannot be used together with any
1196 63657f42 2022-09-07 stsp other options except <code class="Fl">-r</code> and
1197 63657f42 2022-09-07 stsp <code class="Fl">-t</code>.</dd>
1198 63657f42 2022-09-07 stsp <dt id="r~7"><a class="permalink" href="#r~7"><code class="Fl">-r</code></a>
1199 63657f42 2022-09-07 stsp <var class="Ar">repository-path</var></dt>
1200 63657f42 2022-09-07 stsp <dd>Use the repository at the specified path. If not specified, assume the
1201 63657f42 2022-09-07 stsp repository is located at or above the current working directory. If
1202 63657f42 2022-09-07 stsp this directory is a <code class="Nm">got</code> work tree, use the
1203 63657f42 2022-09-07 stsp repository path associated with this work tree.</dd>
1204 feee6923 2020-09-17 stsp <dt id="s~4"><a class="permalink" href="#s~4"><code class="Fl">-s</code></a>
1205 b213cbf7 2020-03-23 stsp <var class="Ar">reference</var></dt>
1206 b213cbf7 2020-03-23 stsp <dd>Create a symbolic reference, or change an existing symbolic reference.
1207 b213cbf7 2020-03-23 stsp The symbolic reference with the specified <var class="Ar">name</var>
1208 b213cbf7 2020-03-23 stsp will point at the specified <var class="Ar">reference</var> which must
1209 b213cbf7 2020-03-23 stsp already exist in the repository. Care should be taken not to create
1210 b213cbf7 2020-03-23 stsp loops between references when this option is used. Cannot be used
1211 b213cbf7 2020-03-23 stsp together with any other options except
1212 b213cbf7 2020-03-23 stsp <code class="Fl">-r</code>.</dd>
1213 bd0bf387 2024-04-23 stsp <dt id="t~3"><a class="permalink" href="#t~3"><code class="Fl">-t</code></a></dt>
1214 63657f42 2022-09-07 stsp <dd>Sort listed references by modification time (most recently modified
1215 63657f42 2022-09-07 stsp first) instead of sorting by lexicographical order. Use of this option
1216 63657f42 2022-09-07 stsp requires the <code class="Fl">-l</code> option to be used as
1217 63657f42 2022-09-07 stsp well.</dd>
1218 8797b228 2019-08-04 stsp </dl>
1219 8797b228 2019-08-04 stsp </dd>
1220 63b69821 2021-10-16 stsp <dt id="br"><a class="permalink" href="#branch"><code class="Cm" id="branch">branch</code></a>
1221 63657f42 2022-09-07 stsp [<code class="Fl">-lnt</code>] [<code class="Fl">-c</code>
1222 63657f42 2022-09-07 stsp <var class="Ar">commit</var>] [<code class="Fl">-d</code>
1223 63657f42 2022-09-07 stsp <var class="Ar">name</var>] [<code class="Fl">-r</code>
1224 63657f42 2022-09-07 stsp <var class="Ar">repository-path</var>] [<var class="Ar">name</var>]</dt>
1225 63b69821 2021-10-16 stsp <dd>
1226 63b69821 2021-10-16 stsp <div class="Bd Bd-indent"><code class="Li">(alias:
1227 46043f6f 2021-11-23 stsp <code class="Cm">br</code>)</code></div>
1228 46043f6f 2021-11-23 stsp Create, list, or delete branches.
1229 039953c9 2021-03-22 stsp <p class="Pp">Local branches are managed via references which live in the
1230 8797b228 2019-08-04 stsp &#x201C;refs/heads/&#x201D; reference namespace. The
1231 def5be4a 2021-08-31 stsp <code class="Cm">got branch</code> command creates references in this
1232 def5be4a 2021-08-31 stsp namespace only.</p>
1233 b078d5c4 2022-03-23 stsp <p class="Pp">When deleting branches, the specified
1234 def5be4a 2021-08-31 stsp <var class="Ar">name</var> is searched in the &#x201C;refs/heads&#x201D;
1235 b078d5c4 2022-03-23 stsp reference namespace first. If no corresponding branch is found, the
1236 def5be4a 2021-08-31 stsp &#x201C;refs/remotes&#x201D; namespace will be searched next.</p>
1237 2b499410 2019-10-06 stsp <p class="Pp">If invoked in a work tree without any arguments, print the
1238 7c3b4ab8 2020-02-25 stsp name of the work tree's current branch.</p>
1239 7c3b4ab8 2020-02-25 stsp <p class="Pp">If a <var class="Ar">name</var> argument is passed, attempt to
1240 7c3b4ab8 2020-02-25 stsp create a branch reference with the given name. By default the new branch
1241 7c3b4ab8 2020-02-25 stsp reference will point at the latest commit on the work tree's current
1242 7c3b4ab8 2020-02-25 stsp branch if invoked in a work tree, and otherwise to a commit resolved via
1243 7c3b4ab8 2020-02-25 stsp the repository's HEAD reference.</p>
1244 7c3b4ab8 2020-02-25 stsp <p class="Pp">If invoked in a work tree, once the branch was created
1245 7c3b4ab8 2020-02-25 stsp successfully switch the work tree's head reference to the newly created
1246 7c3b4ab8 2020-02-25 stsp branch and update files across the entire work tree, just like
1247 7c3b4ab8 2020-02-25 stsp <code class="Cm">got update -b</code> <var class="Ar">name</var> would
1248 7c3b4ab8 2020-02-25 stsp do. Show the status of each affected file, using the following status
1249 7c3b4ab8 2020-02-25 stsp codes:</p>
1250 7c3b4ab8 2020-02-25 stsp <table class="Bl-column">
1251 7c3b4ab8 2020-02-25 stsp <tr>
1252 7c3b4ab8 2020-02-25 stsp <td>U</td>
1253 7c3b4ab8 2020-02-25 stsp <td>file was updated and contained no local changes</td>
1254 7c3b4ab8 2020-02-25 stsp </tr>
1255 7c3b4ab8 2020-02-25 stsp <tr>
1256 7c3b4ab8 2020-02-25 stsp <td>G</td>
1257 7c3b4ab8 2020-02-25 stsp <td>file was updated and local changes were merged cleanly</td>
1258 7c3b4ab8 2020-02-25 stsp </tr>
1259 7c3b4ab8 2020-02-25 stsp <tr>
1260 7c3b4ab8 2020-02-25 stsp <td>C</td>
1261 7c3b4ab8 2020-02-25 stsp <td>file was updated and conflicts occurred during merge</td>
1262 7c3b4ab8 2020-02-25 stsp </tr>
1263 7c3b4ab8 2020-02-25 stsp <tr>
1264 7c3b4ab8 2020-02-25 stsp <td>D</td>
1265 7c3b4ab8 2020-02-25 stsp <td>file was deleted</td>
1266 7c3b4ab8 2020-02-25 stsp </tr>
1267 7c3b4ab8 2020-02-25 stsp <tr>
1268 7c3b4ab8 2020-02-25 stsp <td>A</td>
1269 7c3b4ab8 2020-02-25 stsp <td>new file was added</td>
1270 7c3b4ab8 2020-02-25 stsp </tr>
1271 7c3b4ab8 2020-02-25 stsp <tr>
1272 7c3b4ab8 2020-02-25 stsp <td>~</td>
1273 7c3b4ab8 2020-02-25 stsp <td>versioned file is obstructed by a non-regular file</td>
1274 7c3b4ab8 2020-02-25 stsp </tr>
1275 7c3b4ab8 2020-02-25 stsp <tr>
1276 7c3b4ab8 2020-02-25 stsp <td>!</td>
1277 7c3b4ab8 2020-02-25 stsp <td>a missing versioned file was restored</td>
1278 7c3b4ab8 2020-02-25 stsp </tr>
1279 7c3b4ab8 2020-02-25 stsp </table>
1280 8797b228 2019-08-04 stsp <p class="Pp">The options for <code class="Cm">got branch</code> are as
1281 8797b228 2019-08-04 stsp follows:</p>
1282 8797b228 2019-08-04 stsp <dl class="Bl-tag">
1283 63b69821 2021-10-16 stsp <dt id="c~8"><a class="permalink" href="#c~8"><code class="Fl">-c</code></a>
1284 cc85973b 2019-11-27 stsp <var class="Ar">commit</var></dt>
1285 cc85973b 2019-11-27 stsp <dd>Make a newly created branch reference point at the specified
1286 b183145b 2024-08-14 op <var class="Ar">commit</var>. The expected argument is a commit ID, or
1287 b183145b 2024-08-14 op a reference name or keyword which will be resolved to a commit ID. An
1288 b183145b 2024-08-14 op abbreviated hash argument will be expanded to a full commit ID
1289 b183145b 2024-08-14 op automatically, provided the abbreviation is unique. The keywords
1290 b183145b 2024-08-14 op &quot;:base&quot; and &quot;:head&quot; resolve to the work tree's
1291 b183145b 2024-08-14 op base commit and branch head, respectively. The former is only valid if
1292 b183145b 2024-08-14 op invoked in a work tree, while the latter will resolve to the tip of
1293 b183145b 2024-08-14 op the work tree's current branch if invoked in a work tree, otherwise it
1294 b183145b 2024-08-14 op will resolve to the repository's HEAD reference. Keywords and
1295 b183145b 2024-08-14 op references may be appended with &quot;:+&quot; or &quot;:-&quot;
1296 461d9094 2023-07-19 stsp modifiers and an optional integer N to denote the Nth descendant or
1297 461d9094 2023-07-19 stsp antecedent by first parent traversal, respectively; for example,
1298 461d9094 2023-07-19 stsp <b class="Sy">:head:-2</b> denotes the work tree branch head's 2nd
1299 461d9094 2023-07-19 stsp generation ancestor, and <b class="Sy">:base:+4</b> denotes the 4th
1300 461d9094 2023-07-19 stsp generation descendant of the work tree's base commit. Similarly,
1301 461d9094 2023-07-19 stsp <a class="permalink" href="#foobar:+3"><b class="Sy" id="foobar:+3">foobar:+3</b></a>
1302 461d9094 2023-07-19 stsp will denote the 3rd generation descendant of the commit resolved by
1303 461d9094 2023-07-19 stsp the &quot;foobar&quot; reference. A &quot;:+&quot; or &quot;:-&quot;
1304 461d9094 2023-07-19 stsp modifier without a trailing integer has an implicit &quot;1&quot;
1305 461d9094 2023-07-19 stsp appended (e.g., <b class="Sy">:base:+</b> is equivalent to
1306 461d9094 2023-07-19 stsp <b class="Sy">:base:+1</b>).</dd>
1307 47f19dd5 2023-01-17 stsp <dt id="d~5"><a class="permalink" href="#d~5"><code class="Fl">-d</code></a>
1308 63657f42 2022-09-07 stsp <var class="Ar">name</var></dt>
1309 63657f42 2022-09-07 stsp <dd>Delete the branch with the specified <var class="Ar">name</var> from
1310 63657f42 2022-09-07 stsp the &#x201C;refs/heads&#x201D; or &#x201C;refs/remotes&#x201D;
1311 63657f42 2022-09-07 stsp reference namespace.
1312 63657f42 2022-09-07 stsp <p class="Pp">Only the branch reference is deleted. Any commit, tree,
1313 63657f42 2022-09-07 stsp and blob objects belonging to the branch remain in the repository
1314 63657f42 2022-09-07 stsp and may be removed separately with Git's garbage collector or
1315 63657f42 2022-09-07 stsp <code class="Cm">gotadmin cleanup</code>.</p>
1316 63657f42 2022-09-07 stsp </dd>
1317 2dbbbc3a 2020-07-23 stsp <dt id="l~5"><a class="permalink" href="#l~5"><code class="Fl">-l</code></a></dt>
1318 039953c9 2021-03-22 stsp <dd>List all existing branches in the repository, including copies of
1319 039953c9 2021-03-22 stsp remote repositories' branches in the &#x201C;refs/remotes/&#x201D;
1320 039953c9 2021-03-22 stsp reference namespace.
1321 039953c9 2021-03-22 stsp <p class="Pp">If invoked in a work tree, the work tree's current branch
1322 461d9094 2023-07-19 stsp is shown with one of the following annotations:</p>
1323 8797b228 2019-08-04 stsp <table class="Bl-column">
1324 8797b228 2019-08-04 stsp <tr>
1325 8797b228 2019-08-04 stsp <td>*</td>
1326 a8f7f066 2023-08-29 stsp <td>work tree's base commit and the base commit of all tracked files
1327 a8f7f066 2023-08-29 stsp matches the branch tip</td>
1328 8797b228 2019-08-04 stsp </tr>
1329 8797b228 2019-08-04 stsp <tr>
1330 8797b228 2019-08-04 stsp <td>~</td>
1331 a8f7f066 2023-08-29 stsp <td>work tree comprises mixed commits or its base commit is
1332 a8f7f066 2023-08-29 stsp out-of-date</td>
1333 8797b228 2019-08-04 stsp </tr>
1334 8797b228 2019-08-04 stsp </table>
1335 8797b228 2019-08-04 stsp </dd>
1336 63657f42 2022-09-07 stsp <dt id="n"><a class="permalink" href="#n"><code class="Fl">-n</code></a></dt>
1337 63657f42 2022-09-07 stsp <dd>Do not switch and update the work tree after creating a new
1338 63657f42 2022-09-07 stsp branch.</dd>
1339 63657f42 2022-09-07 stsp <dt id="r~8"><a class="permalink" href="#r~8"><code class="Fl">-r</code></a>
1340 63657f42 2022-09-07 stsp <var class="Ar">repository-path</var></dt>
1341 63657f42 2022-09-07 stsp <dd>Use the repository at the specified path. If not specified, assume the
1342 63657f42 2022-09-07 stsp repository is located at or above the current working directory. If
1343 63657f42 2022-09-07 stsp this directory is a <code class="Nm">got</code> work tree, use the
1344 63657f42 2022-09-07 stsp repository path associated with this work tree.</dd>
1345 bd0bf387 2024-04-23 stsp <dt id="t~4"><a class="permalink" href="#t~4"><code class="Fl">-t</code></a></dt>
1346 46043f6f 2021-11-23 stsp <dd>Sort listed branches by modification time (most recently modified
1347 46043f6f 2021-11-23 stsp first) instead of sorting by lexicographical order. Branches in the
1348 46043f6f 2021-11-23 stsp &#x201C;refs/heads/&#x201D; reference namespace are listed before
1349 46043f6f 2021-11-23 stsp branches in &#x201C;refs/remotes/&#x201D; regardless. Use of this
1350 46043f6f 2021-11-23 stsp option requires the <code class="Fl">-l</code> option to be used as
1351 46043f6f 2021-11-23 stsp well.</dd>
1352 8797b228 2019-08-04 stsp </dl>
1353 8797b228 2019-08-04 stsp </dd>
1354 2dbbbc3a 2020-07-23 stsp <dt id="tag"><a class="permalink" href="#tag"><code class="Cm">tag</code></a>
1355 b6df88e2 2024-12-28 stsp [<code class="Fl">-lsVv</code>] [<code class="Fl">-c</code>
1356 63657f42 2022-09-07 stsp <var class="Ar">commit</var>] [<code class="Fl">-m</code>
1357 63657f42 2022-09-07 stsp <var class="Ar">message</var>] [<code class="Fl">-r</code>
1358 b6df88e2 2024-12-28 stsp <var class="Ar">repository-path</var>] [<code class="Fl">-S</code>
1359 63657f42 2022-09-07 stsp <var class="Ar">signer-id</var>] <var class="Ar">name</var></dt>
1360 f447d26b 2019-08-23 stsp <dd>Manage tags in a repository.
1361 f447d26b 2019-08-23 stsp <p class="Pp">Tags are managed via references which live in the
1362 f447d26b 2019-08-23 stsp &#x201C;refs/tags/&#x201D; reference namespace. The <code class="Cm">got
1363 f447d26b 2019-08-23 stsp tag</code> command operates on references in this namespace only.
1364 f447d26b 2019-08-23 stsp References in this namespace point at tag objects which contain a
1365 f447d26b 2019-08-23 stsp pointer to another object, a tag message, as well as author and
1366 f447d26b 2019-08-23 stsp timestamp information.</p>
1367 7c3b4ab8 2020-02-25 stsp <p class="Pp">Attempt to create a tag with the given
1368 7c3b4ab8 2020-02-25 stsp <var class="Ar">name</var>, and make this tag point at the given
1369 7c3b4ab8 2020-02-25 stsp <var class="Ar">commit</var>. If no commit is specified, default to the
1370 7c3b4ab8 2020-02-25 stsp latest commit on the work tree's current branch if invoked in a work
1371 7c3b4ab8 2020-02-25 stsp tree, and to a commit resolved via the repository's HEAD reference
1372 7c3b4ab8 2020-02-25 stsp otherwise.</p>
1373 f447d26b 2019-08-23 stsp <p class="Pp">The options for <code class="Cm">got tag</code> are as
1374 f447d26b 2019-08-23 stsp follows:</p>
1375 f447d26b 2019-08-23 stsp <dl class="Bl-tag">
1376 63b69821 2021-10-16 stsp <dt id="c~9"><a class="permalink" href="#c~9"><code class="Fl">-c</code></a>
1377 7c3b4ab8 2020-02-25 stsp <var class="Ar">commit</var></dt>
1378 7c3b4ab8 2020-02-25 stsp <dd>Make the newly created tag reference point at the specified
1379 7c3b4ab8 2020-02-25 stsp <var class="Ar">commit</var>. The expected
1380 b183145b 2024-08-14 op <var class="Ar">commit</var> argument is a commit ID, or a reference
1381 b183145b 2024-08-14 op or keyword which will be resolved to a commit ID. An abbreviated hash
1382 b183145b 2024-08-14 op argument will be expanded to a full commit ID automatically, provided
1383 b183145b 2024-08-14 op the abbreviation is unique. The keywords &quot;:base&quot; and
1384 b183145b 2024-08-14 op &quot;:head&quot; resolve to the work tree's base commit and branch
1385 b183145b 2024-08-14 op head, respectively. The former is only valid if invoked in a work
1386 b183145b 2024-08-14 op tree, while the latter will resolve to the tip of the work tree's
1387 b183145b 2024-08-14 op current branch if invoked in a work tree, otherwise it will resolve to
1388 b183145b 2024-08-14 op the repository's HEAD reference. Keywords and references may be
1389 b183145b 2024-08-14 op appended with &quot;:+&quot; or &quot;:-&quot; modifiers and an
1390 b183145b 2024-08-14 op optional integer N to denote the Nth descendant or antecedent by first
1391 b183145b 2024-08-14 op parent traversal, respectively; for example,
1392 461d9094 2023-07-19 stsp <b class="Sy">:head:-2</b> denotes the work tree branch head's 2nd
1393 461d9094 2023-07-19 stsp generation ancestor, and <b class="Sy">:base:+4</b> denotes the 4th
1394 461d9094 2023-07-19 stsp generation descendant of the work tree's base commit. Similarly,
1395 461d9094 2023-07-19 stsp <a class="permalink" href="#eggs:-3"><b class="Sy" id="eggs:-3">eggs:-3</b></a>
1396 461d9094 2023-07-19 stsp will denote the 3rd generation ancestor of the commit resolved by the
1397 461d9094 2023-07-19 stsp &quot;eggs&quot; reference. A &quot;:+&quot; or &quot;:-&quot;
1398 461d9094 2023-07-19 stsp modifier without a trailing integer has an implicit &quot;1&quot;
1399 461d9094 2023-07-19 stsp appended (e.g., <b class="Sy">:base:+</b> is equivalent to
1400 461d9094 2023-07-19 stsp <b class="Sy">:base:+1</b>).</dd>
1401 63657f42 2022-09-07 stsp <dt id="l~6"><a class="permalink" href="#l~6"><code class="Fl">-l</code></a></dt>
1402 63657f42 2022-09-07 stsp <dd>List all existing tags in the repository instead of creating a new
1403 63657f42 2022-09-07 stsp tag. If a <var class="Ar">name</var> argument is passed, show only the
1404 63657f42 2022-09-07 stsp tag with the given <var class="Ar">name</var>.</dd>
1405 2dbbbc3a 2020-07-23 stsp <dt id="m~3"><a class="permalink" href="#m~3"><code class="Fl">-m</code></a>
1406 f447d26b 2019-08-23 stsp <var class="Ar">message</var></dt>
1407 7c3b4ab8 2020-02-25 stsp <dd>Use the specified tag message when creating the new tag. Without the
1408 cc85973b 2019-11-27 stsp <code class="Fl">-m</code> option, <code class="Cm">got tag</code>
1409 f447d26b 2019-08-23 stsp opens a temporary file in an editor where a tag message can be
1410 461d9094 2023-07-19 stsp written. Quitting the editor without saving the file will abort the
1411 461d9094 2023-07-19 stsp tag operation.</dd>
1412 2dbbbc3a 2020-07-23 stsp <dt id="r~9"><a class="permalink" href="#r~9"><code class="Fl">-r</code></a>
1413 f447d26b 2019-08-23 stsp <var class="Ar">repository-path</var></dt>
1414 f447d26b 2019-08-23 stsp <dd>Use the repository at the specified path. If not specified, assume the
1415 f447d26b 2019-08-23 stsp repository is located at or above the current working directory. If
1416 f447d26b 2019-08-23 stsp this directory is a <code class="Nm">got</code> work tree, use the
1417 f447d26b 2019-08-23 stsp repository path associated with this work tree.</dd>
1418 b6df88e2 2024-12-28 stsp <dt id="S~3"><a class="permalink" href="#S~3"><code class="Fl">-S</code></a>
1419 376d4d52 2022-07-04 stsp <var class="Ar">signer-id</var></dt>
1420 376d4d52 2022-07-04 stsp <dd>While creating a new tag, sign this tag with the identity given in
1421 376d4d52 2022-07-04 stsp <var class="Ar">signer-id</var>.
1422 376d4d52 2022-07-04 stsp <p class="Pp">For SSH-based signatures, <var class="Ar">signer-id</var>
1423 376d4d52 2022-07-04 stsp is the path to a file which may refer to either a private SSH key,
1424 376d4d52 2022-07-04 stsp or a public SSH key with the private half available via
1425 376d4d52 2022-07-04 stsp <a class="Xr" aria-label="ssh-agent, section 1">ssh-agent(1)</a>.
1426 376d4d52 2022-07-04 stsp <code class="Cm">got tag</code> will sign the tag object by invoking
1427 376d4d52 2022-07-04 stsp <a class="Xr" aria-label="ssh-keygen, section 1">ssh-keygen(1)</a>
1428 63657f42 2022-09-07 stsp with the <code class="Fl">-Y</code> <code class="Cm">sign</code>
1429 376d4d52 2022-07-04 stsp command, using the signature namespace &#x201C;git&#x201D; for
1430 376d4d52 2022-07-04 stsp compatibility with <a class="Xr" aria-label="git, section
1431 376d4d52 2022-07-04 stsp 1">git(1)</a>.</p>
1432 376d4d52 2022-07-04 stsp </dd>
1433 b6df88e2 2024-12-28 stsp <dt id="s~5"><a class="permalink" href="#s~5"><code class="Fl">-s</code></a></dt>
1434 b6df88e2 2024-12-28 stsp <dd>Display a short one-line summary of each tag, instead of the default
1435 b6df88e2 2024-12-28 stsp history format. Can only be used with the <code class="Fl">-l</code>
1436 b6df88e2 2024-12-28 stsp option.</dd>
1437 376d4d52 2022-07-04 stsp <dt id="V~2"><a class="permalink" href="#V~2"><code class="Fl">-V</code></a></dt>
1438 376d4d52 2022-07-04 stsp <dd>Verify tag object signatures. If a <var class="Ar">name</var> is
1439 376d4d52 2022-07-04 stsp specified, show and verify the tag object with the provided name.
1440 376d4d52 2022-07-04 stsp Otherwise, list all tag objects and verify signatures where present.
1441 376d4d52 2022-07-04 stsp <p class="Pp"><code class="Cm">got tag</code> verifies SSH-based
1442 376d4d52 2022-07-04 stsp signatures by invoking <a class="Xr" aria-label="ssh-keygen, section
1443 376d4d52 2022-07-04 stsp 1">ssh-keygen(1)</a> with the options <code class="Fl">-Y</code>
1444 63657f42 2022-09-07 stsp <code class="Cm">verify</code> <code class="Fl">-f</code>
1445 376d4d52 2022-07-04 stsp <var class="Ar">allowed_signers</var>. A path to the
1446 376d4d52 2022-07-04 stsp <var class="Ar">allowed_signers</var> file must be set in
1447 376d4d52 2022-07-04 stsp <a class="Xr" aria-label="got.conf, section 5">got.conf(5)</a>,
1448 376d4d52 2022-07-04 stsp otherwise verification is impossible.</p>
1449 376d4d52 2022-07-04 stsp </dd>
1450 63657f42 2022-09-07 stsp <dt id="v~3"><a class="permalink" href="#v~3"><code class="Fl">-v</code></a></dt>
1451 63657f42 2022-09-07 stsp <dd>Verbose mode. During SSH signature creation and verification this
1452 63657f42 2022-09-07 stsp option will be passed to <a class="Xr" aria-label="ssh-keygen, section
1453 63657f42 2022-09-07 stsp 1">ssh-keygen(1)</a>. Multiple -v options increase the verbosity. The
1454 63657f42 2022-09-07 stsp maximum is 3.</dd>
1455 f447d26b 2019-08-23 stsp </dl>
1456 f447d26b 2019-08-23 stsp <p class="Pp">By design, the <code class="Cm">got tag</code> command will
1457 f447d26b 2019-08-23 stsp not delete tags or change existing tags. If a tag must be deleted, the
1458 f447d26b 2019-08-23 stsp <code class="Cm">got ref</code> command may be used to delete a tag's
1459 f447d26b 2019-08-23 stsp reference. This should only be done if the tag has not already been
1460 f447d26b 2019-08-23 stsp copied to another repository.</p>
1461 f447d26b 2019-08-23 stsp </dd>
1462 2dbbbc3a 2020-07-23 stsp <dt id="add"><a class="permalink" href="#add"><code class="Cm">add</code></a>
1463 63657f42 2022-09-07 stsp [<code class="Fl">-IR</code>] <var class="Ar">path ...</var></dt>
1464 8797b228 2019-08-04 stsp <dd>Schedule unversioned files in a work tree for addition to the repository
1465 16cd1323 2021-07-26 stsp in the next commit. By default, files which match a <code class="Cm">got
1466 16cd1323 2021-07-26 stsp status</code> ignore pattern will not be added.
1467 41ae98c9 2023-06-23 stsp <p class="Pp">If a <var class="Ar">path</var> mentioned in the command line
1468 41ae98c9 2023-06-23 stsp is not an unversioned file then <code class="Cm">got add</code> may
1469 41ae98c9 2023-06-23 stsp raise an error. To avoid unnecessary errors from paths picked up by file
1470 41ae98c9 2023-06-23 stsp globbing patterns in the shell, paths in the argument list will be
1471 41ae98c9 2023-06-23 stsp silently ignored if they are not reported by <code class="Cm">got
1472 41ae98c9 2023-06-23 stsp status</code> at all, or if they are reported with one of the following
1473 41ae98c9 2023-06-23 stsp status codes and do not have changes staged via <code class="Cm">got
1474 41ae98c9 2023-06-23 stsp stage</code>:</p>
1475 41ae98c9 2023-06-23 stsp <table class="Bl-column">
1476 41ae98c9 2023-06-23 stsp <tr>
1477 41ae98c9 2023-06-23 stsp <td>M</td>
1478 41ae98c9 2023-06-23 stsp <td>modified file</td>
1479 41ae98c9 2023-06-23 stsp </tr>
1480 41ae98c9 2023-06-23 stsp <tr>
1481 41ae98c9 2023-06-23 stsp <td>A</td>
1482 41ae98c9 2023-06-23 stsp <td>file scheduled for addition in next commit</td>
1483 41ae98c9 2023-06-23 stsp </tr>
1484 41ae98c9 2023-06-23 stsp <tr>
1485 41ae98c9 2023-06-23 stsp <td>C</td>
1486 41ae98c9 2023-06-23 stsp <td>modified or added file which contains merge conflicts</td>
1487 41ae98c9 2023-06-23 stsp </tr>
1488 41ae98c9 2023-06-23 stsp <tr>
1489 41ae98c9 2023-06-23 stsp <td>m</td>
1490 41ae98c9 2023-06-23 stsp <td>modified file modes (executable bit only)</td>
1491 41ae98c9 2023-06-23 stsp </tr>
1492 41ae98c9 2023-06-23 stsp </table>
1493 cc85973b 2019-11-27 stsp <p class="Pp">The options for <code class="Cm">got add</code> are as
1494 cc85973b 2019-11-27 stsp follows:</p>
1495 cc85973b 2019-11-27 stsp <dl class="Bl-tag">
1496 63657f42 2022-09-07 stsp <dt id="I~3"><a class="permalink" href="#I~3"><code class="Fl">-I</code></a></dt>
1497 63657f42 2022-09-07 stsp <dd>Add files even if they match a <code class="Cm">got status</code>
1498 63657f42 2022-09-07 stsp ignore pattern.</dd>
1499 2dbbbc3a 2020-07-23 stsp <dt id="R~5"><a class="permalink" href="#R~5"><code class="Fl">-R</code></a></dt>
1500 cc85973b 2019-11-27 stsp <dd>Permit recursion into directories. If this option is not specified,
1501 cc85973b 2019-11-27 stsp <code class="Cm">got add</code> will refuse to run if a specified
1502 cc85973b 2019-11-27 stsp <var class="Ar">path</var> is a directory.</dd>
1503 cc85973b 2019-11-27 stsp </dl>
1504 cc85973b 2019-11-27 stsp </dd>
1505 63b69821 2021-10-16 stsp <dt id="rm"><a class="permalink" href="#remove"><code class="Cm" id="remove">remove</code></a>
1506 63657f42 2022-09-07 stsp [<code class="Fl">-fkR</code>] [<code class="Fl">-s</code>
1507 feee6923 2020-09-17 stsp <var class="Ar">status-codes</var>] <var class="Ar">path ...</var></dt>
1508 63b69821 2021-10-16 stsp <dd>
1509 63b69821 2021-10-16 stsp <div class="Bd Bd-indent"><code class="Li">(alias:
1510 46043f6f 2021-11-23 stsp <code class="Cm">rm</code>)</code></div>
1511 46043f6f 2021-11-23 stsp Remove versioned files from a work tree and schedule them for deletion from
1512 46043f6f 2021-11-23 stsp the repository in the next commit.
1513 8797b228 2019-08-04 stsp <p class="Pp">The options for <code class="Cm">got remove</code> are as
1514 8797b228 2019-08-04 stsp follows:</p>
1515 8797b228 2019-08-04 stsp <dl class="Bl-tag">
1516 2dbbbc3a 2020-07-23 stsp <dt id="f"><a class="permalink" href="#f"><code class="Fl">-f</code></a></dt>
1517 b078d5c4 2022-03-23 stsp <dd>Perform the operation even if a file contains local modifications, and
1518 b078d5c4 2022-03-23 stsp do not raise an error if a specified <var class="Ar">path</var> does
1519 b078d5c4 2022-03-23 stsp not exist on disk.</dd>
1520 2dbbbc3a 2020-07-23 stsp <dt id="k"><a class="permalink" href="#k"><code class="Fl">-k</code></a></dt>
1521 8b679b4b 2020-02-17 stsp <dd>Keep affected files on disk.</dd>
1522 2dbbbc3a 2020-07-23 stsp <dt id="R~6"><a class="permalink" href="#R~6"><code class="Fl">-R</code></a></dt>
1523 8b679b4b 2020-02-17 stsp <dd>Permit recursion into directories. If this option is not specified,
1524 8b679b4b 2020-02-17 stsp <code class="Cm">got remove</code> will refuse to run if a specified
1525 8b679b4b 2020-02-17 stsp <var class="Ar">path</var> is a directory.</dd>
1526 376d4d52 2022-07-04 stsp <dt id="s~6"><a class="permalink" href="#s~6"><code class="Fl">-s</code></a>
1527 feee6923 2020-09-17 stsp <var class="Ar">status-codes</var></dt>
1528 feee6923 2020-09-17 stsp <dd>Only delete files with a modification status matching one of the
1529 feee6923 2020-09-17 stsp single-character status codes contained in the
1530 feee6923 2020-09-17 stsp <var class="Ar">status-codes</var> argument. The following status
1531 feee6923 2020-09-17 stsp codes may be specified:
1532 feee6923 2020-09-17 stsp <table class="Bl-column">
1533 feee6923 2020-09-17 stsp <tr>
1534 feee6923 2020-09-17 stsp <td>M</td>
1535 feee6923 2020-09-17 stsp <td>modified file (this implies the <code class="Fl">-f</code>
1536 feee6923 2020-09-17 stsp option)</td>
1537 feee6923 2020-09-17 stsp </tr>
1538 feee6923 2020-09-17 stsp <tr>
1539 feee6923 2020-09-17 stsp <td>!</td>
1540 feee6923 2020-09-17 stsp <td>versioned file expected on disk but missing</td>
1541 feee6923 2020-09-17 stsp </tr>
1542 feee6923 2020-09-17 stsp </table>
1543 feee6923 2020-09-17 stsp </dd>
1544 b078d5c4 2022-03-23 stsp </dl>
1545 b078d5c4 2022-03-23 stsp </dd>
1546 b078d5c4 2022-03-23 stsp <dt id="pa"><a class="permalink" href="#patch"><code class="Cm" id="patch">patch</code></a>
1547 63657f42 2022-09-07 stsp [<code class="Fl">-nR</code>] [<code class="Fl">-c</code>
1548 63657f42 2022-09-07 stsp <var class="Ar">commit</var>] [<code class="Fl">-p</code>
1549 63657f42 2022-09-07 stsp <var class="Ar">strip-count</var>] [<var class="Ar">patchfile</var>]</dt>
1550 b078d5c4 2022-03-23 stsp <dd>
1551 b078d5c4 2022-03-23 stsp <div class="Bd Bd-indent"><code class="Li">(alias:
1552 b078d5c4 2022-03-23 stsp <code class="Cm">pa</code>)</code></div>
1553 b078d5c4 2022-03-23 stsp Apply changes from <var class="Ar">patchfile</var> to files in a work tree.
1554 b078d5c4 2022-03-23 stsp Files added or removed by a patch will be scheduled for addition or
1555 b078d5c4 2022-03-23 stsp removal in the work tree.
1556 b078d5c4 2022-03-23 stsp <p class="Pp">The patch must be in the unified diff format as produced by
1557 376d4d52 2022-07-04 stsp <code class="Cm">got diff</code>, <a class="Xr" aria-label="git-diff,
1558 376d4d52 2022-07-04 stsp section 1">git-diff(1)</a>, or by <a class="Xr" aria-label="diff,
1559 376d4d52 2022-07-04 stsp section 1">diff(1)</a> and <a class="Xr" aria-label="cvs, section
1560 376d4d52 2022-07-04 stsp 1">cvs(1)</a> diff when invoked with their <code class="Fl">-u</code>
1561 376d4d52 2022-07-04 stsp options. If no <var class="Ar">patchfile</var> argument is provided,
1562 376d4d52 2022-07-04 stsp read unified diff data from standard input instead.</p>
1563 b078d5c4 2022-03-23 stsp <p class="Pp">If the <var class="Ar">patchfile</var> contains multiple
1564 b078d5c4 2022-03-23 stsp patches, then attempt to apply each of them in sequence.</p>
1565 b078d5c4 2022-03-23 stsp <p class="Pp">Show the status of each affected file, using the following
1566 b078d5c4 2022-03-23 stsp status codes:</p>
1567 b078d5c4 2022-03-23 stsp <table class="Bl-column">
1568 b078d5c4 2022-03-23 stsp <tr>
1569 b078d5c4 2022-03-23 stsp <td>M</td>
1570 b078d5c4 2022-03-23 stsp <td>file was modified</td>
1571 b078d5c4 2022-03-23 stsp </tr>
1572 b078d5c4 2022-03-23 stsp <tr>
1573 376d4d52 2022-07-04 stsp <td>G</td>
1574 376d4d52 2022-07-04 stsp <td>file was merged using a merge-base found in the repository</td>
1575 376d4d52 2022-07-04 stsp </tr>
1576 376d4d52 2022-07-04 stsp <tr>
1577 376d4d52 2022-07-04 stsp <td>C</td>
1578 376d4d52 2022-07-04 stsp <td>file was merged and conflicts occurred during merge</td>
1579 376d4d52 2022-07-04 stsp </tr>
1580 376d4d52 2022-07-04 stsp <tr>
1581 b078d5c4 2022-03-23 stsp <td>D</td>
1582 b078d5c4 2022-03-23 stsp <td>file was deleted</td>
1583 b078d5c4 2022-03-23 stsp </tr>
1584 b078d5c4 2022-03-23 stsp <tr>
1585 b078d5c4 2022-03-23 stsp <td>A</td>
1586 b078d5c4 2022-03-23 stsp <td>file was added</td>
1587 b078d5c4 2022-03-23 stsp </tr>
1588 b078d5c4 2022-03-23 stsp <tr>
1589 b078d5c4 2022-03-23 stsp <td>#</td>
1590 b078d5c4 2022-03-23 stsp <td>failed to patch the file</td>
1591 b078d5c4 2022-03-23 stsp </tr>
1592 b078d5c4 2022-03-23 stsp </table>
1593 b078d5c4 2022-03-23 stsp <p class="Pp">If a change does not match at its exact line number, attempt
1594 b078d5c4 2022-03-23 stsp to apply it somewhere else in the file if a good spot can be found.
1595 b078d5c4 2022-03-23 stsp Otherwise, the patch will fail to apply.</p>
1596 b078d5c4 2022-03-23 stsp <p class="Pp"><code class="Nm">got</code> <code class="Cm">patch</code> will
1597 b078d5c4 2022-03-23 stsp refuse to apply a patch if certain preconditions are not met. Files to
1598 b078d5c4 2022-03-23 stsp be deleted must already be under version control, and must not have been
1599 b078d5c4 2022-03-23 stsp scheduled for deletion already. Files to be added must not yet be under
1600 b078d5c4 2022-03-23 stsp version control and must not already be present on disk. Files to be
1601 b078d5c4 2022-03-23 stsp modified must already be under version control and may not contain
1602 b078d5c4 2022-03-23 stsp conflict markers.</p>
1603 b078d5c4 2022-03-23 stsp <p class="Pp">If an error occurs, the <code class="Cm">patch</code>
1604 b078d5c4 2022-03-23 stsp operation will be aborted. Any changes made to the work tree up to this
1605 b078d5c4 2022-03-23 stsp point will be left behind. Such changes can be viewed with
1606 b078d5c4 2022-03-23 stsp <code class="Cm">got diff</code> and can be reverted with
1607 b078d5c4 2022-03-23 stsp <code class="Cm">got revert</code> if needed.</p>
1608 b078d5c4 2022-03-23 stsp <p class="Pp">The options for <code class="Cm">got patch</code> are as
1609 b078d5c4 2022-03-23 stsp follows:</p>
1610 b078d5c4 2022-03-23 stsp <dl class="Bl-tag">
1611 63657f42 2022-09-07 stsp <dt id="c~10"><a class="permalink" href="#c~10"><code class="Fl">-c</code></a>
1612 63657f42 2022-09-07 stsp <var class="Ar">commit</var></dt>
1613 63657f42 2022-09-07 stsp <dd>Attempt to locate files within the specified
1614 63657f42 2022-09-07 stsp <var class="Ar">commit</var> for use as a merge-base for 3-way merges.
1615 63657f42 2022-09-07 stsp <p class="Pp">If the <code class="Fl">-c</code> option is not used then
1616 63657f42 2022-09-07 stsp <code class="Cm">got patch</code> will attempt to locate merge-bases
1617 63657f42 2022-09-07 stsp via object IDs found in <var class="Ar">patchfile</var> meta-data,
1618 63657f42 2022-09-07 stsp such as produced by <code class="Cm">got diff</code> or
1619 63657f42 2022-09-07 stsp <a class="Xr" aria-label="git-diff, section 1">git-diff(1)</a>. Use
1620 63657f42 2022-09-07 stsp of the <code class="Fl">-c</code> option is only recommended in the
1621 63657f42 2022-09-07 stsp absence of such meta-data.</p>
1622 461d9094 2023-07-19 stsp <p class="Pp">Ideally, the specified <var class="Ar">commit</var> should
1623 461d9094 2023-07-19 stsp contain versions of files which the changes contained in the
1624 461d9094 2023-07-19 stsp <var class="Ar">patchfile</var> were based on. Files will be located
1625 461d9094 2023-07-19 stsp by path, relative to the repository root. If the
1626 461d9094 2023-07-19 stsp <code class="Fl">-p</code> option is used then leading path
1627 461d9094 2023-07-19 stsp components will be stripped before paths are looked up in the
1628 461d9094 2023-07-19 stsp repository.</p>
1629 63657f42 2022-09-07 stsp <p class="Pp">In case no merge-base is available for a file, changes
1630 63657f42 2022-09-07 stsp will be applied without doing a 3-way merge. Changes which do not
1631 63657f42 2022-09-07 stsp apply cleanly may then be rejected entirely, rather than producing
1632 63657f42 2022-09-07 stsp merge conflicts in the patched target file.</p>
1633 461d9094 2023-07-19 stsp <p class="Pp" id="flan:+3">The expected <var class="Ar">commit</var>
1634 b183145b 2024-08-14 op argument is a commit ID, or a reference name or a keyword which will
1635 b183145b 2024-08-14 op be resolved to a commit ID. An abbreviated hash argument will be
1636 b183145b 2024-08-14 op expanded to a full commit ID automatically, provided the
1637 461d9094 2023-07-19 stsp abbreviation is unique. The keywords &quot;:base&quot; and
1638 461d9094 2023-07-19 stsp &quot;:head&quot; resolve to the work tree's base commit and branch
1639 461d9094 2023-07-19 stsp head, respectively. Keywords and references may be appended with
1640 461d9094 2023-07-19 stsp &quot;:+&quot; or &quot;:-&quot; modifiers and an optional integer N
1641 461d9094 2023-07-19 stsp to denote the Nth descendant or antecedent by first parent
1642 461d9094 2023-07-19 stsp traversal, respectively; for example, <b class="Sy">:head:-2</b>
1643 461d9094 2023-07-19 stsp denotes the work tree branch head's 2nd generation ancestor, and
1644 461d9094 2023-07-19 stsp <b class="Sy">:base:+4</b> denotes the 4th generation descendant of
1645 461d9094 2023-07-19 stsp the work tree's base commit. Similarly,
1646 461d9094 2023-07-19 stsp <a class="permalink" href="#flan:+3"><b class="Sy">flan:+3</b></a>
1647 461d9094 2023-07-19 stsp will denote the 3rd generation descendant of the commit resolved by
1648 461d9094 2023-07-19 stsp the &quot;flan&quot; reference. A &quot;:+&quot; or &quot;:-&quot;
1649 461d9094 2023-07-19 stsp modifier without a trailing integer has an implicit &quot;1&quot;
1650 461d9094 2023-07-19 stsp appended (e.g., <b class="Sy">:base:+</b> is equivalent to
1651 461d9094 2023-07-19 stsp <b class="Sy">:base:+1</b>).</p>
1652 63657f42 2022-09-07 stsp </dd>
1653 b078d5c4 2022-03-23 stsp <dt id="n~2"><a class="permalink" href="#n~2"><code class="Fl">-n</code></a></dt>
1654 b078d5c4 2022-03-23 stsp <dd>Do not make any modifications to the work tree. This can be used to
1655 b078d5c4 2022-03-23 stsp check whether a patch would apply without issues. If the
1656 b078d5c4 2022-03-23 stsp <var class="Ar">patchfile</var> contains diffs that affect the same
1657 b078d5c4 2022-03-23 stsp file multiple times, the results displayed may be incorrect.</dd>
1658 15ba8349 2022-04-24 stsp <dt id="p~3"><a class="permalink" href="#p~3"><code class="Fl">-p</code></a>
1659 15ba8349 2022-04-24 stsp <var class="Ar">strip-count</var></dt>
1660 15ba8349 2022-04-24 stsp <dd>Specify the number of leading path components to strip from paths
1661 15ba8349 2022-04-24 stsp parsed from <var class="Ar">patchfile</var>. If the
1662 15ba8349 2022-04-24 stsp <code class="Fl">-p</code> option is not used, &#x2018;a/&#x2019; and
1663 15ba8349 2022-04-24 stsp &#x2018;b/&#x2019; path prefixes generated by
1664 376d4d52 2022-07-04 stsp <a class="Xr" aria-label="git-diff, section 1">git-diff(1)</a> will be
1665 376d4d52 2022-07-04 stsp recognized and stripped automatically.</dd>
1666 15ba8349 2022-04-24 stsp <dt id="R~7"><a class="permalink" href="#R~7"><code class="Fl">-R</code></a></dt>
1667 15ba8349 2022-04-24 stsp <dd>Reverse the patch before applying it.</dd>
1668 8797b228 2019-08-04 stsp </dl>
1669 8797b228 2019-08-04 stsp </dd>
1670 63b69821 2021-10-16 stsp <dt id="rv"><a class="permalink" href="#revert"><code class="Cm" id="revert">revert</code></a>
1671 63657f42 2022-09-07 stsp [<code class="Fl">-pR</code>] [<code class="Fl">-F</code>
1672 63657f42 2022-09-07 stsp <var class="Ar">response-script</var>] <var class="Ar">path ...</var></dt>
1673 63b69821 2021-10-16 stsp <dd>
1674 63b69821 2021-10-16 stsp <div class="Bd Bd-indent"><code class="Li">(alias:
1675 46043f6f 2021-11-23 stsp <code class="Cm">rv</code>)</code></div>
1676 46043f6f 2021-11-23 stsp Revert any local changes in files at the specified paths in a work tree.
1677 a462773e 2020-04-19 stsp File contents will be overwritten with those contained in the work tree's
1678 a462773e 2020-04-19 stsp base commit. There is no way to bring discarded changes back after
1679 8797b228 2019-08-04 stsp <code class="Cm">got revert</code>!
1680 b078d5c4 2022-03-23 stsp <p class="Pp">If a file was added with <code class="Cm">got add</code>, it
1681 8797b228 2019-08-04 stsp will become an unversioned file again. If a file was deleted with
1682 b078d5c4 2022-03-23 stsp <code class="Cm">got remove</code>, it will be restored.</p>
1683 7da3b7f6 2019-08-08 stsp <p class="Pp">The options for <code class="Cm">got revert</code> are as
1684 7da3b7f6 2019-08-08 stsp follows:</p>
1685 7da3b7f6 2019-08-08 stsp <dl class="Bl-tag">
1686 63657f42 2022-09-07 stsp <dt id="F"><a class="permalink" href="#F"><code class="Fl">-F</code></a>
1687 63657f42 2022-09-07 stsp <var class="Ar">response-script</var></dt>
1688 63657f42 2022-09-07 stsp <dd>With the <code class="Fl">-p</code> option, read &#x201C;y&#x201D;,
1689 63657f42 2022-09-07 stsp &#x201C;n&#x201D;, and &#x201C;q&#x201D; responses line-by-line from
1690 63657f42 2022-09-07 stsp the specified <var class="Ar">response-script</var> file instead of
1691 63657f42 2022-09-07 stsp prompting interactively.</dd>
1692 15ba8349 2022-04-24 stsp <dt id="p~4"><a class="permalink" href="#p~4"><code class="Fl">-p</code></a></dt>
1693 7da3b7f6 2019-08-08 stsp <dd>Instead of reverting all changes in files, interactively select or
1694 7da3b7f6 2019-08-08 stsp reject changes to revert based on &#x201C;y&#x201D; (revert change),
1695 7da3b7f6 2019-08-08 stsp &#x201C;n&#x201D; (keep change), and &#x201C;q&#x201D; (quit reverting
1696 7da3b7f6 2019-08-08 stsp this file) responses. If a file is in modified status, individual
1697 7da3b7f6 2019-08-08 stsp patches derived from the modified file content can be reverted. Files
1698 7da3b7f6 2019-08-08 stsp in added or deleted status may only be reverted in their
1699 7da3b7f6 2019-08-08 stsp entirety.</dd>
1700 15ba8349 2022-04-24 stsp <dt id="R~8"><a class="permalink" href="#R~8"><code class="Fl">-R</code></a></dt>
1701 7da3b7f6 2019-08-08 stsp <dd>Permit recursion into directories. If this option is not specified,
1702 7da3b7f6 2019-08-08 stsp <code class="Cm">got revert</code> will refuse to run if a specified
1703 7da3b7f6 2019-08-08 stsp <var class="Ar">path</var> is a directory.</dd>
1704 7da3b7f6 2019-08-08 stsp </dl>
1705 8797b228 2019-08-04 stsp </dd>
1706 63b69821 2021-10-16 stsp <dt id="ci"><a class="permalink" href="#commit"><code class="Cm" id="commit">commit</code></a>
1707 f6a6fa94 2023-02-22 stsp [<code class="Fl">-CNnS</code>] [<code class="Fl">-A</code>
1708 63657f42 2022-09-07 stsp <var class="Ar">author</var>] [<code class="Fl">-F</code>
1709 63657f42 2022-09-07 stsp <var class="Ar">path</var>] [<code class="Fl">-m</code>
1710 63657f42 2022-09-07 stsp <var class="Ar">message</var>] [<var class="Ar">path ...</var>]</dt>
1711 63b69821 2021-10-16 stsp <dd>
1712 63b69821 2021-10-16 stsp <div class="Bd Bd-indent"><code class="Li">(alias:
1713 46043f6f 2021-11-23 stsp <code class="Cm">ci</code>)</code></div>
1714 46043f6f 2021-11-23 stsp Create a new commit in the repository from changes in a work tree and use
1715 8797b228 2019-08-04 stsp this commit as the new base commit for the work tree. If no
1716 8797b228 2019-08-04 stsp <var class="Ar">path</var> is specified, commit all changes in the work
1717 8797b228 2019-08-04 stsp tree. Otherwise, commit changes at or within the specified paths.
1718 8797b228 2019-08-04 stsp <p class="Pp">If changes have been explicitly staged for commit with
1719 4967d3c2 2019-08-12 stsp <code class="Cm">got stage</code>, only commit staged changes and reject
1720 8797b228 2019-08-04 stsp any specified paths which have not been staged.</p>
1721 039953c9 2021-03-22 stsp <p class="Pp"><code class="Cm">got commit</code> opens a temporary file in
1722 039953c9 2021-03-22 stsp an editor where a log message can be written unless the
1723 039953c9 2021-03-22 stsp <code class="Fl">-m</code> option is used or the
1724 039953c9 2021-03-22 stsp <code class="Fl">-F</code> and <code class="Fl">-N</code> options are
1725 461d9094 2023-07-19 stsp used together. Quitting the editor without saving the file will abort
1726 461d9094 2023-07-19 stsp the commit operation.</p>
1727 8797b228 2019-08-04 stsp <p class="Pp">Show the status of each affected file, using the following
1728 8797b228 2019-08-04 stsp status codes:</p>
1729 8797b228 2019-08-04 stsp <table class="Bl-column">
1730 8797b228 2019-08-04 stsp <tr>
1731 8797b228 2019-08-04 stsp <td>M</td>
1732 8797b228 2019-08-04 stsp <td>modified file</td>
1733 8797b228 2019-08-04 stsp </tr>
1734 8797b228 2019-08-04 stsp <tr>
1735 8797b228 2019-08-04 stsp <td>D</td>
1736 8797b228 2019-08-04 stsp <td>file was deleted</td>
1737 8797b228 2019-08-04 stsp </tr>
1738 8797b228 2019-08-04 stsp <tr>
1739 8797b228 2019-08-04 stsp <td>A</td>
1740 8797b228 2019-08-04 stsp <td>new file was added</td>
1741 d8e62599 2019-10-21 stsp </tr>
1742 d8e62599 2019-10-21 stsp <tr>
1743 d8e62599 2019-10-21 stsp <td>m</td>
1744 d8e62599 2019-10-21 stsp <td>modified file modes (executable bit only)</td>
1745 8797b228 2019-08-04 stsp </tr>
1746 8797b228 2019-08-04 stsp </table>
1747 ae520cae 2019-08-05 stsp <p class="Pp">Files which are not part of the new commit will retain their
1748 ae520cae 2019-08-05 stsp previously recorded base commit. Some <code class="Nm">got</code>
1749 ae520cae 2019-08-05 stsp commands may refuse to run while the work tree contains files from
1750 ae520cae 2019-08-05 stsp multiple base commits. The base commit of such a work tree can be made
1751 ae520cae 2019-08-05 stsp consistent by running <code class="Cm">got update</code> across the
1752 ae520cae 2019-08-05 stsp entire work tree.</p>
1753 8797b228 2019-08-04 stsp <p class="Pp">The <code class="Cm">got commit</code> command requires the
1754 c2a52be5 2019-09-08 stsp <code class="Ev">GOT_AUTHOR</code> environment variable to be set,
1755 376d4d52 2022-07-04 stsp unless an author has been configured in
1756 376d4d52 2022-07-04 stsp <a class="Xr" aria-label="got.conf, section 5">got.conf(5)</a> or Git's
1757 376d4d52 2022-07-04 stsp <code class="Dv">user.name</code> and <code class="Dv">user.email</code>
1758 376d4d52 2022-07-04 stsp configuration settings can be obtained from the repository's
1759 376d4d52 2022-07-04 stsp <span class="Pa">.git/config</span> file or from Git's global
1760 376d4d52 2022-07-04 stsp <span class="Pa">~/.gitconfig</span> configuration file.</p>
1761 8797b228 2019-08-04 stsp <p class="Pp">The options for <code class="Cm">got commit</code> are as
1762 8797b228 2019-08-04 stsp follows:</p>
1763 8797b228 2019-08-04 stsp <dl class="Bl-tag">
1764 b183145b 2024-08-14 op <dt id="A~2"><a class="permalink" href="#A~2"><code class="Fl">-A</code></a>
1765 63657f42 2022-09-07 stsp <var class="Ar">author</var></dt>
1766 63657f42 2022-09-07 stsp <dd>Set author information in the newly created commit to
1767 63657f42 2022-09-07 stsp <var class="Ar">author</var>. This is useful when committing changes
1768 f6a6fa94 2023-02-22 stsp on behalf of someone else. The <var class="Ar">author</var> argument
1769 f6a6fa94 2023-02-22 stsp must use the same format as the <code class="Ev">GOT_AUTHOR</code>
1770 f6a6fa94 2023-02-22 stsp environment variable.
1771 63657f42 2022-09-07 stsp <p class="Pp">In addition to storing author information, the newly
1772 63657f42 2022-09-07 stsp created commit object will retain &#x201C;committer&#x201D;
1773 63657f42 2022-09-07 stsp information which is obtained, as usual, from the
1774 63657f42 2022-09-07 stsp <code class="Ev">GOT_AUTHOR</code> environment variable, or
1775 63657f42 2022-09-07 stsp <a class="Xr" aria-label="got.conf, section 5">got.conf(5)</a>, or
1776 63657f42 2022-09-07 stsp Git configuration settings.</p>
1777 63657f42 2022-09-07 stsp </dd>
1778 f6a6fa94 2023-02-22 stsp <dt id="C~3"><a class="permalink" href="#C~3"><code class="Fl">-C</code></a></dt>
1779 f6a6fa94 2023-02-22 stsp <dd>Allow committing files in conflicted status.
1780 f6a6fa94 2023-02-22 stsp <p class="Pp">Committing files with conflict markers should generally be
1781 f6a6fa94 2023-02-22 stsp avoided. Cases where conflict markers must be stored in the
1782 f6a6fa94 2023-02-22 stsp repository for some legitimate reason should be very rare. There are
1783 f6a6fa94 2023-02-22 stsp usually ways to avoid storing conflict markers verbatim by applying
1784 f6a6fa94 2023-02-22 stsp appropriate programming tricks.</p>
1785 f6a6fa94 2023-02-22 stsp </dd>
1786 039953c9 2021-03-22 stsp <dt id="F~2"><a class="permalink" href="#F~2"><code class="Fl">-F</code></a>
1787 039953c9 2021-03-22 stsp <var class="Ar">path</var></dt>
1788 039953c9 2021-03-22 stsp <dd>Use the prepared log message stored in the file found at
1789 039953c9 2021-03-22 stsp <var class="Ar">path</var> when creating the new commit.
1790 039953c9 2021-03-22 stsp <code class="Cm">got commit</code> opens a temporary file in an editor
1791 039953c9 2021-03-22 stsp where the prepared log message can be reviewed and edited further if
1792 039953c9 2021-03-22 stsp needed. Cannot be used together with the <code class="Fl">-m</code>
1793 039953c9 2021-03-22 stsp option.</dd>
1794 2dbbbc3a 2020-07-23 stsp <dt id="m~4"><a class="permalink" href="#m~4"><code class="Fl">-m</code></a>
1795 8797b228 2019-08-04 stsp <var class="Ar">message</var></dt>
1796 039953c9 2021-03-22 stsp <dd>Use the specified log message when creating the new commit. Cannot be
1797 039953c9 2021-03-22 stsp used together with the <code class="Fl">-F</code> option.</dd>
1798 039953c9 2021-03-22 stsp <dt id="N"><a class="permalink" href="#N"><code class="Fl">-N</code></a></dt>
1799 039953c9 2021-03-22 stsp <dd>This option prevents <code class="Cm">got commit</code> from opening
1800 039953c9 2021-03-22 stsp the commit message in an editor. It has no effect unless it is used
1801 039953c9 2021-03-22 stsp together with the <code class="Fl">-F</code> option and is intended
1802 039953c9 2021-03-22 stsp for non-interactive use such as scripting.</dd>
1803 fd9580e1 2022-11-03 stsp <dt id="n~3"><a class="permalink" href="#n~3"><code class="Fl">-n</code></a></dt>
1804 fd9580e1 2022-11-03 stsp <dd>This option prevents <code class="Cm">got commit</code> from
1805 fd9580e1 2022-11-03 stsp generating a diff of the to-be-committed changes in a temporary file
1806 fd9580e1 2022-11-03 stsp which can be viewed while editing a commit message.</dd>
1807 b6df88e2 2024-12-28 stsp <dt id="S~4"><a class="permalink" href="#S~4"><code class="Fl">-S</code></a></dt>
1808 1554b334 2020-08-02 stsp <dd>Allow the addition of symbolic links which point outside of the path
1809 1554b334 2020-08-02 stsp space that is under version control. By default, <code class="Cm">got
1810 1554b334 2020-08-02 stsp commit</code> will reject such symbolic links due to safety concerns.
1811 1554b334 2020-08-02 stsp As a precaution, <code class="Nm">got</code> may decide to represent
1812 1554b334 2020-08-02 stsp such a symbolic link as a regular file which contains the link's
1813 1554b334 2020-08-02 stsp target path, rather than creating an actual symbolic link which points
1814 1554b334 2020-08-02 stsp outside of the work tree. Use of this option is discouraged because
1815 1554b334 2020-08-02 stsp external mechanisms such as &#x201C;make obj&#x201D; are better suited
1816 1554b334 2020-08-02 stsp for managing symbolic links to paths not under version control.</dd>
1817 8797b228 2019-08-04 stsp </dl>
1818 8797b228 2019-08-04 stsp <p class="Pp"><code class="Cm">got commit</code> will refuse to run if
1819 8797b228 2019-08-04 stsp certain preconditions are not met. If the work tree's current branch is
1820 8797b228 2019-08-04 stsp not in the &#x201C;refs/heads/&#x201D; reference namespace, new commits
1821 8797b228 2019-08-04 stsp may not be created on this branch. Local changes may only be committed
1822 8797b228 2019-08-04 stsp if they are based on file content found in the most recent commit on the
1823 8797b228 2019-08-04 stsp work tree's branch. If a path is found to be out of date,
1824 8797b228 2019-08-04 stsp <code class="Cm">got update</code> must be used first in order to merge
1825 8797b228 2019-08-04 stsp local changes with changes made in the repository.</p>
1826 8797b228 2019-08-04 stsp </dd>
1827 63b69821 2021-10-16 stsp <dt id="se"><a class="permalink" href="#send"><code class="Cm" id="send">send</code></a>
1828 63657f42 2022-09-07 stsp [<code class="Fl">-afqTv</code>] [<code class="Fl">-b</code>
1829 def5be4a 2021-08-31 stsp <var class="Ar">branch</var>] [<code class="Fl">-d</code>
1830 b6df88e2 2024-12-28 stsp <var class="Ar">branch</var>] [<code class="Fl">-J</code>
1831 b6df88e2 2024-12-28 stsp <var class="Ar">jumphost</var>] [<code class="Fl">-r</code>
1832 63657f42 2022-09-07 stsp <var class="Ar">repository-path</var>] [<code class="Fl">-t</code>
1833 63657f42 2022-09-07 stsp <var class="Ar">tag</var>] [<var class="Ar">remote-repository</var>]</dt>
1834 63b69821 2021-10-16 stsp <dd>
1835 63b69821 2021-10-16 stsp <div class="Bd Bd-indent"><code class="Li">(alias:
1836 46043f6f 2021-11-23 stsp <code class="Cm">se</code>)</code></div>
1837 46043f6f 2021-11-23 stsp Send new changes to a remote repository. If no
1838 def5be4a 2021-08-31 stsp <var class="Ar">remote-repository</var> is specified,
1839 def5be4a 2021-08-31 stsp &#x201C;origin&#x201D; will be used. The remote repository's URL is
1840 376d4d52 2022-07-04 stsp obtained from the corresponding entry in
1841 376d4d52 2022-07-04 stsp <a class="Xr" aria-label="got.conf, section 5">got.conf(5)</a> or Git's
1842 376d4d52 2022-07-04 stsp <span class="Pa">config</span> file of the local repository, as created by
1843 376d4d52 2022-07-04 stsp <code class="Cm">got clone</code>.
1844 def5be4a 2021-08-31 stsp <p class="Pp">All objects corresponding to new changes will be written to a
1845 def5be4a 2021-08-31 stsp temporary pack file which is then uploaded to the server. Upon success,
1846 def5be4a 2021-08-31 stsp references in the &#x201C;refs/remotes/&#x201D; reference namespace of
1847 def5be4a 2021-08-31 stsp the local repository will be updated to point at the commits which have
1848 def5be4a 2021-08-31 stsp been sent.</p>
1849 def5be4a 2021-08-31 stsp <p class="Pp">By default, changes will only be sent if they are based on
1850 def5be4a 2021-08-31 stsp up-to-date copies of relevant branches in the remote repository. If any
1851 def5be4a 2021-08-31 stsp changes to be sent are based on out-of-date copies or would otherwise
1852 def5be4a 2021-08-31 stsp break linear history of existing branches, new changes must be fetched
1853 def5be4a 2021-08-31 stsp from the server with <code class="Cm">got fetch</code> and local
1854 def5be4a 2021-08-31 stsp branches must be rebased with <code class="Cm">got rebase</code> before
1855 def5be4a 2021-08-31 stsp <code class="Cm">got send</code> can succeed. The
1856 def5be4a 2021-08-31 stsp <code class="Fl">-f</code> option can be used to make exceptions to
1857 def5be4a 2021-08-31 stsp these requirements.</p>
1858 def5be4a 2021-08-31 stsp <p class="Pp">The options for <code class="Cm">got send</code> are as
1859 def5be4a 2021-08-31 stsp follows:</p>
1860 def5be4a 2021-08-31 stsp <dl class="Bl-tag">
1861 def5be4a 2021-08-31 stsp <dt id="a~4"><a class="permalink" href="#a~4"><code class="Fl">-a</code></a></dt>
1862 def5be4a 2021-08-31 stsp <dd>Send all branches from the local repository's
1863 def5be4a 2021-08-31 stsp &#x201C;refs/heads/&#x201D; reference namespace. The
1864 def5be4a 2021-08-31 stsp <code class="Fl">-a</code> option is equivalent to listing all
1865 def5be4a 2021-08-31 stsp branches with multiple <code class="Fl">-b</code> options. Cannot be
1866 def5be4a 2021-08-31 stsp used together with the <code class="Fl">-b</code> option.</dd>
1867 56f3f26e 2024-06-03 stsp <dt id="b~8"><a class="permalink" href="#b~8"><code class="Fl">-b</code></a>
1868 def5be4a 2021-08-31 stsp <var class="Ar">branch</var></dt>
1869 def5be4a 2021-08-31 stsp <dd>Send the specified <var class="Ar">branch</var> from the local
1870 def5be4a 2021-08-31 stsp repository's &#x201C;refs/heads/&#x201D; reference namespace. This
1871 def5be4a 2021-08-31 stsp option may be specified multiple times to build a list of branches to
1872 def5be4a 2021-08-31 stsp send. If this option is not specified, default to the work tree's
1873 def5be4a 2021-08-31 stsp current branch if invoked in a work tree, or to the repository's HEAD
1874 def5be4a 2021-08-31 stsp reference. Cannot be used together with the <code class="Fl">-a</code>
1875 def5be4a 2021-08-31 stsp option.</dd>
1876 47f19dd5 2023-01-17 stsp <dt id="d~6"><a class="permalink" href="#d~6"><code class="Fl">-d</code></a>
1877 def5be4a 2021-08-31 stsp <var class="Ar">branch</var></dt>
1878 def5be4a 2021-08-31 stsp <dd>Delete the specified <var class="Ar">branch</var> from the remote
1879 def5be4a 2021-08-31 stsp repository's &#x201C;refs/heads/&#x201D; reference namespace. This
1880 def5be4a 2021-08-31 stsp option may be specified multiple times to build a list of branches to
1881 def5be4a 2021-08-31 stsp delete.
1882 def5be4a 2021-08-31 stsp <p class="Pp">Only references are deleted. Any commit, tree, tag, and
1883 def5be4a 2021-08-31 stsp blob objects belonging to deleted branches may become subject to
1884 def5be4a 2021-08-31 stsp deletion by Git's garbage collector running on the server.</p>
1885 def5be4a 2021-08-31 stsp <p class="Pp">Requesting deletion of branches results in an error if the
1886 def5be4a 2021-08-31 stsp server does not support this feature or disallows the deletion of
1887 def5be4a 2021-08-31 stsp branches based on its configuration.</p>
1888 def5be4a 2021-08-31 stsp </dd>
1889 def5be4a 2021-08-31 stsp <dt id="f~2"><a class="permalink" href="#f~2"><code class="Fl">-f</code></a></dt>
1890 def5be4a 2021-08-31 stsp <dd>Attempt to force the server to overwrite existing branches or tags in
1891 461d9094 2023-07-19 stsp the remote repository, even when <code class="Cm">got fetch</code>
1892 461d9094 2023-07-19 stsp followed by <code class="Cm">got rebase</code> or <code class="Cm">got
1893 461d9094 2023-07-19 stsp merge</code> would usually be required before changes can be sent. The
1894 461d9094 2023-07-19 stsp server may reject forced requests regardless, depending on its
1895 461d9094 2023-07-19 stsp configuration.
1896 def5be4a 2021-08-31 stsp <p class="Pp">Any commit, tree, tag, and blob objects belonging to
1897 def5be4a 2021-08-31 stsp overwritten branches or tags may become subject to deletion by Git's
1898 def5be4a 2021-08-31 stsp garbage collector running on the server.</p>
1899 def5be4a 2021-08-31 stsp <p class="Pp">The &#x201C;refs/tags&#x201D; reference namespace is
1900 def5be4a 2021-08-31 stsp globally shared between all repositories. Use of the
1901 def5be4a 2021-08-31 stsp <code class="Fl">-f</code> option to overwrite tags is discouraged
1902 def5be4a 2021-08-31 stsp because it can lead to inconsistencies between the tags present in
1903 def5be4a 2021-08-31 stsp different repositories. In general, creating a new tag with a
1904 def5be4a 2021-08-31 stsp different name is recommended instead of overwriting an existing
1905 def5be4a 2021-08-31 stsp tag.</p>
1906 def5be4a 2021-08-31 stsp <p class="Pp">Use of the <code class="Fl">-f</code> option is
1907 def5be4a 2021-08-31 stsp particularly discouraged if changes being sent are based on an
1908 def5be4a 2021-08-31 stsp out-of-date copy of a branch in the remote repository. Instead of
1909 def5be4a 2021-08-31 stsp using the <code class="Fl">-f</code> option, new changes should be
1910 def5be4a 2021-08-31 stsp fetched with <code class="Cm">got fetch</code> and local branches
1911 461d9094 2023-07-19 stsp should be rebased with <code class="Cm">got rebase</code> or merged
1912 461d9094 2023-07-19 stsp with <code class="Cm">got merge</code>, followed by another attempt
1913 461d9094 2023-07-19 stsp to send the changes.</p>
1914 def5be4a 2021-08-31 stsp <p class="Pp">The <code class="Fl">-f</code> option should only be
1915 def5be4a 2021-08-31 stsp needed in situations where the remote repository's copy of a branch
1916 def5be4a 2021-08-31 stsp or tag is known to be out-of-date and is considered disposable. The
1917 def5be4a 2021-08-31 stsp risks of creating inconsistencies between different repositories
1918 def5be4a 2021-08-31 stsp should also be taken into account.</p>
1919 def5be4a 2021-08-31 stsp </dd>
1920 b6df88e2 2024-12-28 stsp <dt id="J~3"><a class="permalink" href="#J~3"><code class="Fl">-J</code></a>
1921 b6df88e2 2024-12-28 stsp <var class="Ar">jumphost</var></dt>
1922 b6df88e2 2024-12-28 stsp <dd>Specify a <var class="Ar">jumphost</var> to use with SSH connections.
1923 b6df88e2 2024-12-28 stsp The same option will be passed to <a class="Xr" aria-label="ssh,
1924 b6df88e2 2024-12-28 stsp section 1">ssh(1)</a>.</dd>
1925 63657f42 2022-09-07 stsp <dt id="q~5"><a class="permalink" href="#q~5"><code class="Fl">-q</code></a></dt>
1926 63657f42 2022-09-07 stsp <dd>Suppress progress reporting output. The same option will be passed to
1927 63657f42 2022-09-07 stsp <a class="Xr" aria-label="ssh, section 1">ssh(1)</a> if
1928 63657f42 2022-09-07 stsp applicable.</dd>
1929 def5be4a 2021-08-31 stsp <dt id="r~10"><a class="permalink" href="#r~10"><code class="Fl">-r</code></a>
1930 def5be4a 2021-08-31 stsp <var class="Ar">repository-path</var></dt>
1931 def5be4a 2021-08-31 stsp <dd>Use the repository at the specified path. If not specified, assume the
1932 def5be4a 2021-08-31 stsp repository is located at or above the current working directory. If
1933 def5be4a 2021-08-31 stsp this directory is a <code class="Nm">got</code> work tree, use the
1934 def5be4a 2021-08-31 stsp repository path associated with this work tree.</dd>
1935 63657f42 2022-09-07 stsp <dt id="T"><a class="permalink" href="#T"><code class="Fl">-T</code></a></dt>
1936 63657f42 2022-09-07 stsp <dd>Attempt to send all tags from the local repository's
1937 63657f42 2022-09-07 stsp &#x201C;refs/tags/&#x201D; reference namespace. The
1938 63657f42 2022-09-07 stsp <code class="Fl">-T</code> option is equivalent to listing all tags
1939 63657f42 2022-09-07 stsp with multiple <code class="Fl">-t</code> options. Cannot be used
1940 63657f42 2022-09-07 stsp together with the <code class="Fl">-t</code> option.</dd>
1941 bd0bf387 2024-04-23 stsp <dt id="t~5"><a class="permalink" href="#t~5"><code class="Fl">-t</code></a>
1942 def5be4a 2021-08-31 stsp <var class="Ar">tag</var></dt>
1943 def5be4a 2021-08-31 stsp <dd>Send the specified <var class="Ar">tag</var> from the local
1944 def5be4a 2021-08-31 stsp repository's &#x201C;refs/tags/&#x201D; reference namespace, in
1945 def5be4a 2021-08-31 stsp addition to any branches that are being sent. The
1946 def5be4a 2021-08-31 stsp <code class="Fl">-t</code> option may be specified multiple times to
1947 def5be4a 2021-08-31 stsp build a list of tags to send. No tags will be sent if the
1948 def5be4a 2021-08-31 stsp <code class="Fl">-t</code> option is not used.
1949 def5be4a 2021-08-31 stsp <p class="Pp">Raise an error if the specified <var class="Ar">tag</var>
1950 def5be4a 2021-08-31 stsp already exists in the remote repository, unless the
1951 def5be4a 2021-08-31 stsp <code class="Fl">-f</code> option is used to overwrite the server's
1952 def5be4a 2021-08-31 stsp copy of the tag. In general, creating a new tag with a different
1953 def5be4a 2021-08-31 stsp name is recommended instead of overwriting an existing tag.</p>
1954 def5be4a 2021-08-31 stsp <p class="Pp">Cannot be used together with the
1955 def5be4a 2021-08-31 stsp <code class="Fl">-T</code> option.</p>
1956 def5be4a 2021-08-31 stsp </dd>
1957 376d4d52 2022-07-04 stsp <dt id="v~4"><a class="permalink" href="#v~4"><code class="Fl">-v</code></a></dt>
1958 def5be4a 2021-08-31 stsp <dd>Verbose mode. Causes <code class="Cm">got send</code> to print
1959 def5be4a 2021-08-31 stsp debugging messages to standard error output. The same option will be
1960 376d4d52 2022-07-04 stsp passed to <a class="Xr" aria-label="ssh, section 1">ssh(1)</a> if
1961 376d4d52 2022-07-04 stsp applicable. Multiple -v options increase the verbosity. The maximum is
1962 376d4d52 2022-07-04 stsp 3.</dd>
1963 def5be4a 2021-08-31 stsp </dl>
1964 def5be4a 2021-08-31 stsp </dd>
1965 63b69821 2021-10-16 stsp <dt id="cy"><a class="permalink" href="#cherrypick"><code class="Cm" id="cherrypick">cherrypick</code></a>
1966 7985a487 2023-01-30 stsp [<code class="Fl">-lX</code>] [<var class="Ar">commit</var>]</dt>
1967 63b69821 2021-10-16 stsp <dd>
1968 63b69821 2021-10-16 stsp <div class="Bd Bd-indent"><code class="Li">(alias:
1969 46043f6f 2021-11-23 stsp <code class="Cm">cy</code>)</code></div>
1970 46043f6f 2021-11-23 stsp Merge changes from a single <var class="Ar">commit</var> into the work tree.
1971 46043f6f 2021-11-23 stsp The specified <var class="Ar">commit</var> should be on a different branch
1972 461d9094 2023-07-19 stsp than the work tree's base commit.
1973 b183145b 2024-08-14 op <p class="Pp" id="barbaz:+3">The expected argument is a commit ID, or a
1974 b183145b 2024-08-14 op reference name or keyword which will be resolved to a commit ID. An
1975 b183145b 2024-08-14 op abbreviated hash argument will be expanded to a full commit ID
1976 461d9094 2023-07-19 stsp automatically, provided the abbreviation is unique. The keywords
1977 461d9094 2023-07-19 stsp &quot;:base&quot; and &quot;:head&quot; resolve to the work tree's base
1978 461d9094 2023-07-19 stsp commit and branch head, respectively. Keywords and references may be
1979 461d9094 2023-07-19 stsp appended with &quot;:+&quot; or &quot;:-&quot; modifiers and an optional
1980 461d9094 2023-07-19 stsp integer N to denote the Nth descendant or antecedent by first parent
1981 461d9094 2023-07-19 stsp traversal, respectively; for example, <b class="Sy">:head:-2</b> denotes
1982 461d9094 2023-07-19 stsp the work tree branch head's 2nd generation ancestor, and
1983 461d9094 2023-07-19 stsp <b class="Sy">:base:+4</b> denotes the 4th generation descendant of the
1984 461d9094 2023-07-19 stsp work tree's base commit. Similarly,
1985 461d9094 2023-07-19 stsp <a class="permalink" href="#barbaz:+3"><b class="Sy">barbaz:+3</b></a>
1986 461d9094 2023-07-19 stsp will denote the 3rd generation descendant of the commit resolved by the
1987 461d9094 2023-07-19 stsp &quot;barbaz&quot; reference. A &quot;:+&quot; or &quot;:-&quot;
1988 461d9094 2023-07-19 stsp modifier without a trailing integer has an implicit &quot;1&quot;
1989 461d9094 2023-07-19 stsp appended (e.g., <b class="Sy">:base:+</b> is equivalent to
1990 461d9094 2023-07-19 stsp <b class="Sy">:base:+1</b>).</p>
1991 8797b228 2019-08-04 stsp <p class="Pp">Show the status of each affected file, using the following
1992 8797b228 2019-08-04 stsp status codes:</p>
1993 8797b228 2019-08-04 stsp <table class="Bl-column">
1994 8797b228 2019-08-04 stsp <tr>
1995 8797b228 2019-08-04 stsp <td>G</td>
1996 8797b228 2019-08-04 stsp <td>file was merged</td>
1997 8797b228 2019-08-04 stsp </tr>
1998 8797b228 2019-08-04 stsp <tr>
1999 8797b228 2019-08-04 stsp <td>C</td>
2000 8797b228 2019-08-04 stsp <td>file was merged and conflicts occurred during merge</td>
2001 8797b228 2019-08-04 stsp </tr>
2002 8797b228 2019-08-04 stsp <tr>
2003 8797b228 2019-08-04 stsp <td>!</td>
2004 8797b228 2019-08-04 stsp <td>changes destined for a missing file were not merged</td>
2005 8797b228 2019-08-04 stsp </tr>
2006 8797b228 2019-08-04 stsp <tr>
2007 8797b228 2019-08-04 stsp <td>D</td>
2008 8797b228 2019-08-04 stsp <td>file was deleted</td>
2009 8797b228 2019-08-04 stsp </tr>
2010 8797b228 2019-08-04 stsp <tr>
2011 8797b228 2019-08-04 stsp <td>d</td>
2012 417cb057 2021-10-03 stsp <td>file's deletion was prevented by local modifications</td>
2013 8797b228 2019-08-04 stsp </tr>
2014 8797b228 2019-08-04 stsp <tr>
2015 8797b228 2019-08-04 stsp <td>A</td>
2016 8797b228 2019-08-04 stsp <td>new file was added</td>
2017 8797b228 2019-08-04 stsp </tr>
2018 8797b228 2019-08-04 stsp <tr>
2019 8797b228 2019-08-04 stsp <td>~</td>
2020 8797b228 2019-08-04 stsp <td>changes destined for a non-regular file were not merged</td>
2021 8797b228 2019-08-04 stsp </tr>
2022 1554b334 2020-08-02 stsp <tr>
2023 1554b334 2020-08-02 stsp <td>?</td>
2024 1554b334 2020-08-02 stsp <td>changes destined for an unversioned file were not merged</td>
2025 1554b334 2020-08-02 stsp </tr>
2026 8797b228 2019-08-04 stsp </table>
2027 8797b228 2019-08-04 stsp <p class="Pp">The merged changes will appear as local changes in the work
2028 8797b228 2019-08-04 stsp tree, which may be viewed with <code class="Cm">got diff</code>, amended
2029 91b3da3f 2019-08-18 stsp manually or with further <code class="Cm">got cherrypick</code>
2030 7985a487 2023-01-30 stsp commands, committed with <code class="Cm">got commit</code>.</p>
2031 7985a487 2023-01-30 stsp <p class="Pp">If invoked in a work tree where no
2032 7985a487 2023-01-30 stsp <code class="Cm">rebase</code>, <code class="Cm">histedit</code>, or
2033 7985a487 2023-01-30 stsp <code class="Cm">merge</code> operation is taking place,
2034 7985a487 2023-01-30 stsp <code class="Cm">got cherrypick</code> creates a record of commits which
2035 7985a487 2023-01-30 stsp have been merged into the work tree. When a file changed by
2036 7985a487 2023-01-30 stsp <code class="Cm">got cherrypick</code> is committed with
2037 7985a487 2023-01-30 stsp <code class="Cm">got commit</code>, the log messages of relevant merged
2038 f6a6fa94 2023-02-22 stsp commits will then appear in the editor, where the messages should be
2039 f6a6fa94 2023-02-22 stsp further adjusted to convey the reasons for cherrypicking the changes.
2040 f6a6fa94 2023-02-22 stsp Upon exiting the editor, if the time stamp of the log message file is
2041 f6a6fa94 2023-02-22 stsp unchanged or the log message is empty, <code class="Cm">got
2042 f6a6fa94 2023-02-22 stsp commit</code> will fail with an unmodified or empty log message
2043 f6a6fa94 2023-02-22 stsp error.</p>
2044 f6a6fa94 2023-02-22 stsp <p class="Pp">If all the changes in all files touched by a given commit are
2045 f6a6fa94 2023-02-22 stsp discarded, e.g. with <code class="Cm">got revert</code>, this commit's
2046 f6a6fa94 2023-02-22 stsp log message record will also disappear.</p>
2047 8797b228 2019-08-04 stsp <p class="Pp"><code class="Cm">got cherrypick</code> will refuse to run if
2048 8797b228 2019-08-04 stsp certain preconditions are not met. If the work tree contains multiple
2049 b078d5c4 2022-03-23 stsp base commits, it must first be updated to a single base commit with
2050 1e80276a 2021-09-03 stsp <code class="Cm">got update</code>. If any relevant files already
2051 1e80276a 2021-09-03 stsp contain merge conflicts, these conflicts must be resolved first.</p>
2052 7985a487 2023-01-30 stsp <p class="Pp">The options for <code class="Nm">got</code>
2053 7985a487 2023-01-30 stsp <code class="Cm">cherrypick</code> are as follows:</p>
2054 7985a487 2023-01-30 stsp <dl class="Bl-tag">
2055 7985a487 2023-01-30 stsp <dt id="l~7"><a class="permalink" href="#l~7"><code class="Fl">-l</code></a></dt>
2056 7985a487 2023-01-30 stsp <dd>Display a list of commit log messages recorded by cherrypick
2057 7985a487 2023-01-30 stsp operations, represented by references in the
2058 7985a487 2023-01-30 stsp &#x201C;refs/got/worktree&#x201D; reference namespace. If a
2059 7985a487 2023-01-30 stsp <var class="Ar">commit</var> is specified, only show the log message
2060 7985a487 2023-01-30 stsp of the specified commit.
2061 7985a487 2023-01-30 stsp <p class="Pp">If invoked in a work tree, only log messages recorded by
2062 7985a487 2023-01-30 stsp cherrypick operations in the current work tree will be displayed.
2063 7985a487 2023-01-30 stsp Otherwise, all commit log messages will be displayed irrespective of
2064 7985a487 2023-01-30 stsp the work tree in which they were created. This option cannot be used
2065 7985a487 2023-01-30 stsp with <code class="Fl">-X</code>.</p>
2066 7985a487 2023-01-30 stsp </dd>
2067 7985a487 2023-01-30 stsp <dt id="X~2"><a class="permalink" href="#X~2"><code class="Fl">-X</code></a></dt>
2068 7985a487 2023-01-30 stsp <dd>Delete log messages created by previous cherrypick operations,
2069 7985a487 2023-01-30 stsp represented by references in the &#x201C;refs/got/worktree&#x201D;
2070 7985a487 2023-01-30 stsp reference namespace. If a <var class="Ar">commit</var> is specified,
2071 7985a487 2023-01-30 stsp only delete the log message of the specified commit.
2072 7985a487 2023-01-30 stsp <p class="Pp">If invoked in a work tree, only log messages recorded by
2073 7985a487 2023-01-30 stsp cherrypick operations in the current work tree will be deleted.
2074 7985a487 2023-01-30 stsp Otherwise, all commit log messages will be deleted irrespective of
2075 7985a487 2023-01-30 stsp the work tree in which they were created. This option cannot be used
2076 7985a487 2023-01-30 stsp with <code class="Fl">-l</code>.</p>
2077 7985a487 2023-01-30 stsp </dd>
2078 7985a487 2023-01-30 stsp </dl>
2079 7985a487 2023-01-30 stsp <p class="Pp"></p>
2080 8797b228 2019-08-04 stsp </dd>
2081 63b69821 2021-10-16 stsp <dt id="bo"><a class="permalink" href="#backout"><code class="Cm" id="backout">backout</code></a>
2082 7985a487 2023-01-30 stsp [<code class="Fl">-lX</code>] [<var class="Ar">commit</var>]</dt>
2083 63b69821 2021-10-16 stsp <dd>
2084 63b69821 2021-10-16 stsp <div class="Bd Bd-indent"><code class="Li">(alias:
2085 46043f6f 2021-11-23 stsp <code class="Cm">bo</code>)</code></div>
2086 46043f6f 2021-11-23 stsp Reverse-merge changes from a single <var class="Ar">commit</var> into the
2087 1e80276a 2021-09-03 stsp work tree. The specified <var class="Ar">commit</var> should be on the
2088 461d9094 2023-07-19 stsp same branch as the work tree's base commit.
2089 b183145b 2024-08-14 op <p class="Pp" id="wip:+5">The expected argument is a commit ID, or a
2090 b183145b 2024-08-14 op reference name or keyword which will be resolved to a commit ID. An
2091 b183145b 2024-08-14 op abbreviated hash argument will be expanded to a full commit ID
2092 461d9094 2023-07-19 stsp automatically, provided the abbreviation is unique. The keywords
2093 461d9094 2023-07-19 stsp &quot;:base&quot; and &quot;:head&quot; resolve to the work tree's base
2094 461d9094 2023-07-19 stsp commit and branch head, respectively. Keywords and references may be
2095 461d9094 2023-07-19 stsp appended with &quot;:+&quot; or &quot;:-&quot; modifiers and an optional
2096 461d9094 2023-07-19 stsp integer N to denote the Nth descendant or antecedent by first parent
2097 461d9094 2023-07-19 stsp traversal, respectively; for example, <b class="Sy">:head:-2</b> denotes
2098 461d9094 2023-07-19 stsp the work tree branch head's 2nd generation ancestor, and
2099 461d9094 2023-07-19 stsp <b class="Sy">:base:+4</b> denotes the 4th generation descendant of the
2100 461d9094 2023-07-19 stsp work tree's base commit. Similarly,
2101 461d9094 2023-07-19 stsp <a class="permalink" href="#wip:+5"><b class="Sy">wip:+5</b></a> will
2102 461d9094 2023-07-19 stsp denote the 5th generation descendant of the commit resolved by the
2103 461d9094 2023-07-19 stsp &quot;wip&quot; reference. A &quot;:+&quot; or &quot;:-&quot; modifier
2104 461d9094 2023-07-19 stsp without a trailing integer has an implicit &quot;1&quot; appended (e.g.,
2105 461d9094 2023-07-19 stsp <b class="Sy">:base:+</b> is equivalent to
2106 461d9094 2023-07-19 stsp <b class="Sy">:base:+1</b>).</p>
2107 8797b228 2019-08-04 stsp <p class="Pp">Show the status of each affected file, using the following
2108 8797b228 2019-08-04 stsp status codes:</p>
2109 8797b228 2019-08-04 stsp <table class="Bl-column">
2110 8797b228 2019-08-04 stsp <tr>
2111 8797b228 2019-08-04 stsp <td>G</td>
2112 8797b228 2019-08-04 stsp <td>file was merged</td>
2113 8797b228 2019-08-04 stsp </tr>
2114 8797b228 2019-08-04 stsp <tr>
2115 8797b228 2019-08-04 stsp <td>C</td>
2116 8797b228 2019-08-04 stsp <td>file was merged and conflicts occurred during merge</td>
2117 8797b228 2019-08-04 stsp </tr>
2118 8797b228 2019-08-04 stsp <tr>
2119 8797b228 2019-08-04 stsp <td>!</td>
2120 8797b228 2019-08-04 stsp <td>changes destined for a missing file were not merged</td>
2121 8797b228 2019-08-04 stsp </tr>
2122 8797b228 2019-08-04 stsp <tr>
2123 8797b228 2019-08-04 stsp <td>D</td>
2124 8797b228 2019-08-04 stsp <td>file was deleted</td>
2125 8797b228 2019-08-04 stsp </tr>
2126 8797b228 2019-08-04 stsp <tr>
2127 8797b228 2019-08-04 stsp <td>d</td>
2128 417cb057 2021-10-03 stsp <td>file's deletion was prevented by local modifications</td>
2129 8797b228 2019-08-04 stsp </tr>
2130 8797b228 2019-08-04 stsp <tr>
2131 8797b228 2019-08-04 stsp <td>A</td>
2132 8797b228 2019-08-04 stsp <td>new file was added</td>
2133 8797b228 2019-08-04 stsp </tr>
2134 8797b228 2019-08-04 stsp <tr>
2135 8797b228 2019-08-04 stsp <td>~</td>
2136 8797b228 2019-08-04 stsp <td>changes destined for a non-regular file were not merged</td>
2137 8797b228 2019-08-04 stsp </tr>
2138 1554b334 2020-08-02 stsp <tr>
2139 1554b334 2020-08-02 stsp <td>?</td>
2140 1554b334 2020-08-02 stsp <td>changes destined for an unversioned file were not merged</td>
2141 1554b334 2020-08-02 stsp </tr>
2142 8797b228 2019-08-04 stsp </table>
2143 8797b228 2019-08-04 stsp <p class="Pp">The reverse-merged changes will appear as local changes in the
2144 8797b228 2019-08-04 stsp work tree, which may be viewed with <code class="Cm">got diff</code>,
2145 8797b228 2019-08-04 stsp amended manually or with further <code class="Cm">got backout</code>
2146 7985a487 2023-01-30 stsp commands, committed with <code class="Cm">got commit</code>.</p>
2147 7985a487 2023-01-30 stsp <p class="Pp">If invoked in a work tree where no
2148 7985a487 2023-01-30 stsp <code class="Cm">rebase</code>, <code class="Cm">histedit</code>, or
2149 7985a487 2023-01-30 stsp <code class="Cm">merge</code> operation is taking place,
2150 7985a487 2023-01-30 stsp <code class="Cm">got backout</code> creates a record of commits which
2151 7985a487 2023-01-30 stsp have been reverse-merged into the work tree. When a file changed by
2152 7985a487 2023-01-30 stsp <code class="Cm">got backout</code> is committed with
2153 7985a487 2023-01-30 stsp <code class="Cm">got commit</code>, the log messages of relevant
2154 7985a487 2023-01-30 stsp reverse-merged commits will then appear in the editor, where the
2155 f6a6fa94 2023-02-22 stsp messages should be further adjusted to convey the reasons for backing
2156 f6a6fa94 2023-02-22 stsp out the changes. Upon exiting the editor, if the time stamp of the log
2157 f6a6fa94 2023-02-22 stsp message file is unchanged or the log message is empty,
2158 f6a6fa94 2023-02-22 stsp <code class="Cm">got commit</code> will fail with an unmodified or empty
2159 f6a6fa94 2023-02-22 stsp log message error.</p>
2160 f6a6fa94 2023-02-22 stsp <p class="Pp">If all the changes in all files touched by a given commit are
2161 f6a6fa94 2023-02-22 stsp discarded, e.g. with <code class="Cm">got revert</code>, this commit's
2162 f6a6fa94 2023-02-22 stsp log message record will also disappear.</p>
2163 8797b228 2019-08-04 stsp <p class="Pp"><code class="Cm">got backout</code> will refuse to run if
2164 8797b228 2019-08-04 stsp certain preconditions are not met. If the work tree contains multiple
2165 b078d5c4 2022-03-23 stsp base commits, it must first be updated to a single base commit with
2166 1e80276a 2021-09-03 stsp <code class="Cm">got update</code>. If any relevant files already
2167 1e80276a 2021-09-03 stsp contain merge conflicts, these conflicts must be resolved first.</p>
2168 7985a487 2023-01-30 stsp <p class="Pp">The options for <code class="Nm">got</code>
2169 7985a487 2023-01-30 stsp <code class="Cm">backout</code> are as follows:</p>
2170 7985a487 2023-01-30 stsp <dl class="Bl-tag">
2171 7985a487 2023-01-30 stsp <dt id="l~8"><a class="permalink" href="#l~8"><code class="Fl">-l</code></a></dt>
2172 7985a487 2023-01-30 stsp <dd>Display a list of commit log messages recorded by backout operations,
2173 7985a487 2023-01-30 stsp represented by references in the &#x201C;refs/got/worktree&#x201D;
2174 7985a487 2023-01-30 stsp reference namespace. If a <var class="Ar">commit</var> is specified,
2175 7985a487 2023-01-30 stsp only show the log message of the specified commit.
2176 7985a487 2023-01-30 stsp <p class="Pp">If invoked in a work tree, only log messages recorded by
2177 7985a487 2023-01-30 stsp backout operations in the current work tree will be displayed.
2178 7985a487 2023-01-30 stsp Otherwise, all commit log messages will be displayed irrespective of
2179 7985a487 2023-01-30 stsp the work tree in which they were created. This option cannot be used
2180 7985a487 2023-01-30 stsp with <code class="Fl">-X</code>.</p>
2181 7985a487 2023-01-30 stsp </dd>
2182 7985a487 2023-01-30 stsp <dt id="X~3"><a class="permalink" href="#X~3"><code class="Fl">-X</code></a></dt>
2183 7985a487 2023-01-30 stsp <dd>Delete log messages created by previous backout operations,
2184 7985a487 2023-01-30 stsp represented by references in the &#x201C;refs/got/worktree&#x201D;
2185 7985a487 2023-01-30 stsp reference namespace. If a <var class="Ar">commit</var> is specified,
2186 7985a487 2023-01-30 stsp only delete the log message of the specified commit.
2187 7985a487 2023-01-30 stsp <p class="Pp">If invoked in a work tree, only log messages recorded by
2188 7985a487 2023-01-30 stsp backout operations in the current work tree will be deleted.
2189 7985a487 2023-01-30 stsp Otherwise, all commit log messages will be deleted irrespective of
2190 7985a487 2023-01-30 stsp the work tree in which they were created. This option cannot be used
2191 7985a487 2023-01-30 stsp with <code class="Fl">-l</code>.</p>
2192 7985a487 2023-01-30 stsp </dd>
2193 7985a487 2023-01-30 stsp </dl>
2194 7985a487 2023-01-30 stsp <p class="Pp"></p>
2195 8797b228 2019-08-04 stsp </dd>
2196 63b69821 2021-10-16 stsp <dt id="rb"><a class="permalink" href="#rebase"><code class="Cm" id="rebase">rebase</code></a>
2197 f6a6fa94 2023-02-22 stsp [<code class="Fl">-aCclX</code>] [<var class="Ar">branch</var>]</dt>
2198 63b69821 2021-10-16 stsp <dd>
2199 63b69821 2021-10-16 stsp <div class="Bd Bd-indent"><code class="Li">(alias:
2200 46043f6f 2021-11-23 stsp <code class="Cm">rb</code>)</code></div>
2201 46043f6f 2021-11-23 stsp Rebase commits on the specified <var class="Ar">branch</var> onto the tip of
2202 46043f6f 2021-11-23 stsp the current branch of the work tree. The <var class="Ar">branch</var> must
2203 46043f6f 2021-11-23 stsp share common ancestry with the work tree's current branch. Rebasing begins
2204 46043f6f 2021-11-23 stsp with the first descendant commit of the youngest common ancestor commit
2205 46043f6f 2021-11-23 stsp shared by the specified <var class="Ar">branch</var> and the work tree's
2206 46043f6f 2021-11-23 stsp current branch, and stops once the tip commit of the specified
2207 8797b228 2019-08-04 stsp <var class="Ar">branch</var> has been rebased.
2208 7c3b4ab8 2020-02-25 stsp <p class="Pp">When <code class="Cm">got rebase</code> is used as intended,
2209 a43c0256 2020-02-25 stsp the specified <var class="Ar">branch</var> represents a local commit
2210 a43c0256 2020-02-25 stsp history and may already contain changes that are not yet visible in any
2211 a43c0256 2020-02-25 stsp other repositories. The work tree's current branch, which must be set
2212 a43c0256 2020-02-25 stsp with <code class="Cm">got update -b</code> before starting the
2213 a43c0256 2020-02-25 stsp <code class="Cm">rebase</code> operation, represents a branch from a
2214 a43c0256 2020-02-25 stsp remote repository which shares a common history with the specified
2215 a43c0256 2020-02-25 stsp <var class="Ar">branch</var> but has progressed, and perhaps diverged,
2216 a43c0256 2020-02-25 stsp due to commits added to the remote repository.</p>
2217 8797b228 2019-08-04 stsp <p class="Pp">Rebased commits are accumulated on a temporary branch which
2218 8797b228 2019-08-04 stsp the work tree will remain switched to throughout the entire rebase
2219 8797b228 2019-08-04 stsp operation. Commits on this branch represent the same changes with the
2220 8797b228 2019-08-04 stsp same log messages as their counterparts on the original
2221 8797b228 2019-08-04 stsp <var class="Ar">branch</var>, but with different commit IDs. Once
2222 8797b228 2019-08-04 stsp rebasing has completed successfully, the temporary branch becomes the
2223 8797b228 2019-08-04 stsp new version of the specified <var class="Ar">branch</var> and the work
2224 63657f42 2022-09-07 stsp tree is automatically switched to it. If author information is available
2225 63657f42 2022-09-07 stsp via the <code class="Ev">GOT_AUTHOR</code> environment variable,
2226 63657f42 2022-09-07 stsp <a class="Xr" aria-label="got.conf, section 5">got.conf(5)</a> or Git's
2227 63657f42 2022-09-07 stsp <code class="Dv">user.name</code> and <code class="Dv">user.email</code>
2228 63657f42 2022-09-07 stsp configuration settings, this author information will be used to identify
2229 63657f42 2022-09-07 stsp the &#x201C;committer&#x201D; of rebased commits.</p>
2230 039953c9 2021-03-22 stsp <p class="Pp">Old commits in their pre-rebase state are automatically backed
2231 039953c9 2021-03-22 stsp up in the &#x201C;refs/got/backup/rebase&#x201D; reference namespace. As
2232 039953c9 2021-03-22 stsp long as these references are not removed older versions of rebased
2233 039953c9 2021-03-22 stsp commits will remain in the repository and can be viewed with the
2234 039953c9 2021-03-22 stsp <code class="Cm">got rebase -l</code> command. Removal of these
2235 039953c9 2021-03-22 stsp references makes objects which become unreachable via any reference
2236 16cd1323 2021-07-26 stsp subject to removal by Git's garbage collector or
2237 16cd1323 2021-07-26 stsp <code class="Cm">gotadmin cleanup</code>.</p>
2238 8797b228 2019-08-04 stsp <p class="Pp">While rebasing commits, show the status of each affected file,
2239 8797b228 2019-08-04 stsp using the following status codes:</p>
2240 8797b228 2019-08-04 stsp <table class="Bl-column">
2241 8797b228 2019-08-04 stsp <tr>
2242 8797b228 2019-08-04 stsp <td>G</td>
2243 8797b228 2019-08-04 stsp <td>file was merged</td>
2244 8797b228 2019-08-04 stsp </tr>
2245 8797b228 2019-08-04 stsp <tr>
2246 8797b228 2019-08-04 stsp <td>C</td>
2247 8797b228 2019-08-04 stsp <td>file was merged and conflicts occurred during merge</td>
2248 8797b228 2019-08-04 stsp </tr>
2249 8797b228 2019-08-04 stsp <tr>
2250 8797b228 2019-08-04 stsp <td>!</td>
2251 8797b228 2019-08-04 stsp <td>changes destined for a missing file were not merged</td>
2252 8797b228 2019-08-04 stsp </tr>
2253 8797b228 2019-08-04 stsp <tr>
2254 8797b228 2019-08-04 stsp <td>D</td>
2255 8797b228 2019-08-04 stsp <td>file was deleted</td>
2256 8797b228 2019-08-04 stsp </tr>
2257 8797b228 2019-08-04 stsp <tr>
2258 8797b228 2019-08-04 stsp <td>d</td>
2259 417cb057 2021-10-03 stsp <td>file's deletion was prevented by local modifications</td>
2260 8797b228 2019-08-04 stsp </tr>
2261 8797b228 2019-08-04 stsp <tr>
2262 8797b228 2019-08-04 stsp <td>A</td>
2263 8797b228 2019-08-04 stsp <td>new file was added</td>
2264 8797b228 2019-08-04 stsp </tr>
2265 8797b228 2019-08-04 stsp <tr>
2266 8797b228 2019-08-04 stsp <td>~</td>
2267 8797b228 2019-08-04 stsp <td>changes destined for a non-regular file were not merged</td>
2268 8797b228 2019-08-04 stsp </tr>
2269 1554b334 2020-08-02 stsp <tr>
2270 1554b334 2020-08-02 stsp <td>?</td>
2271 1554b334 2020-08-02 stsp <td>changes destined for an unversioned file were not merged</td>
2272 1554b334 2020-08-02 stsp </tr>
2273 8797b228 2019-08-04 stsp </table>
2274 b078d5c4 2022-03-23 stsp <p class="Pp">If merge conflicts occur, the rebase operation is interrupted
2275 417cb057 2021-10-03 stsp and may be continued once conflicts have been resolved. If any files
2276 417cb057 2021-10-03 stsp with destined changes are found to be missing or unversioned, or if
2277 417cb057 2021-10-03 stsp files could not be deleted due to differences in deleted content, the
2278 417cb057 2021-10-03 stsp rebase operation will be interrupted to prevent potentially incomplete
2279 417cb057 2021-10-03 stsp changes from being committed to the repository without user
2280 417cb057 2021-10-03 stsp intervention. The work tree may be modified as desired and the rebase
2281 417cb057 2021-10-03 stsp operation can be continued once the changes present in the work tree are
2282 417cb057 2021-10-03 stsp considered complete. Alternatively, the rebase operation may be aborted
2283 417cb057 2021-10-03 stsp which will leave <var class="Ar">branch</var> unmodified and the work
2284 417cb057 2021-10-03 stsp tree switched back to its original branch.</p>
2285 8797b228 2019-08-04 stsp <p class="Pp">If a merge conflict is resolved in a way which renders the
2286 8797b228 2019-08-04 stsp merged change into a no-op change, the corresponding commit will be
2287 8797b228 2019-08-04 stsp elided when the rebase operation continues.</p>
2288 8797b228 2019-08-04 stsp <p class="Pp"><code class="Cm">got rebase</code> will refuse to run if
2289 63657f42 2022-09-07 stsp certain preconditions are not met. If the <var class="Ar">branch</var>
2290 63657f42 2022-09-07 stsp is not in the &#x201C;refs/heads/&#x201D; reference namespace, the
2291 63657f42 2022-09-07 stsp branch may not be rebased. If the work tree is not yet fully updated to
2292 63657f42 2022-09-07 stsp the tip commit of its branch, then the work tree must first be updated
2293 63657f42 2022-09-07 stsp with <code class="Cm">got update</code>. If changes have been staged
2294 63657f42 2022-09-07 stsp with <code class="Cm">got stage</code>, these changes must first be
2295 63657f42 2022-09-07 stsp committed with <code class="Cm">got commit</code> or unstaged with
2296 8797b228 2019-08-04 stsp <code class="Cm">got unstage</code>. If the work tree contains local
2297 8797b228 2019-08-04 stsp changes, these changes must first be committed with <code class="Cm">got
2298 8797b228 2019-08-04 stsp commit</code> or reverted with <code class="Cm">got revert</code>. If
2299 8797b228 2019-08-04 stsp the <var class="Ar">branch</var> contains changes to files outside of
2300 8797b228 2019-08-04 stsp the work tree's path prefix, the work tree cannot be used to rebase this
2301 8797b228 2019-08-04 stsp branch.</p>
2302 47f19dd5 2023-01-17 stsp <p class="Pp">The <code class="Cm">got update</code>, <code class="Cm">got
2303 47f19dd5 2023-01-17 stsp integrate</code>, <code class="Cm">got merge</code>,
2304 47f19dd5 2023-01-17 stsp <code class="Cm">got commit</code>, and <code class="Cm">got
2305 47f19dd5 2023-01-17 stsp histedit</code> commands will refuse to run while a rebase operation is
2306 47f19dd5 2023-01-17 stsp in progress. Other commands which manipulate the work tree may be used
2307 47f19dd5 2023-01-17 stsp for conflict resolution purposes.</p>
2308 46043f6f 2021-11-23 stsp <p class="Pp">If the specified <var class="Ar">branch</var> is already based
2309 b078d5c4 2022-03-23 stsp on the work tree's current branch, then no commits need to be rebased
2310 b078d5c4 2022-03-23 stsp and <code class="Cm">got rebase</code> will simply switch the work tree
2311 b078d5c4 2022-03-23 stsp to the specified <var class="Ar">branch</var> and update files in the
2312 b078d5c4 2022-03-23 stsp work tree accordingly.</p>
2313 8797b228 2019-08-04 stsp <p class="Pp">The options for <code class="Cm">got rebase</code> are as
2314 8797b228 2019-08-04 stsp follows:</p>
2315 8797b228 2019-08-04 stsp <dl class="Bl-tag">
2316 def5be4a 2021-08-31 stsp <dt id="a~5"><a class="permalink" href="#a~5"><code class="Fl">-a</code></a></dt>
2317 8797b228 2019-08-04 stsp <dd>Abort an interrupted rebase operation. If this option is used, no
2318 9b0c768d 2019-08-08 stsp other command-line arguments are allowed.</dd>
2319 f6a6fa94 2023-02-22 stsp <dt id="C~4"><a class="permalink" href="#C~4"><code class="Fl">-C</code></a></dt>
2320 f6a6fa94 2023-02-22 stsp <dd>Allow a rebase operation to continue with files in conflicted status.
2321 f6a6fa94 2023-02-22 stsp This option should generally be avoided, and can only be used with the
2322 f6a6fa94 2023-02-22 stsp <code class="Fl">-c</code> option.</dd>
2323 63657f42 2022-09-07 stsp <dt id="c~11"><a class="permalink" href="#c~11"><code class="Fl">-c</code></a></dt>
2324 8797b228 2019-08-04 stsp <dd>Continue an interrupted rebase operation. If this option is used, no
2325 461d9094 2023-07-19 stsp other command-line arguments are allowed except
2326 461d9094 2023-07-19 stsp <code class="Fl">-C</code>.</dd>
2327 7985a487 2023-01-30 stsp <dt id="l~9"><a class="permalink" href="#l~9"><code class="Fl">-l</code></a></dt>
2328 039953c9 2021-03-22 stsp <dd>Show a list of past rebase operations, represented by references in
2329 039953c9 2021-03-22 stsp the &#x201C;refs/got/backup/rebase&#x201D; reference namespace.
2330 039953c9 2021-03-22 stsp <p class="Pp">Display the author, date, and log message of each backed
2331 039953c9 2021-03-22 stsp up commit, the object ID of the corresponding post-rebase commit,
2332 039953c9 2021-03-22 stsp and the object ID of their common ancestor commit. Given these
2333 039953c9 2021-03-22 stsp object IDs, the <code class="Cm">got log</code> command with the
2334 039953c9 2021-03-22 stsp <code class="Fl">-c</code> and <code class="Fl">-x</code> options
2335 039953c9 2021-03-22 stsp can be used to examine the history of either version of the branch,
2336 039953c9 2021-03-22 stsp and the <code class="Cm">got branch</code> command with the
2337 039953c9 2021-03-22 stsp <code class="Fl">-c</code> option can be used to create a new branch
2338 039953c9 2021-03-22 stsp from a pre-rebase state if desired.</p>
2339 039953c9 2021-03-22 stsp <p class="Pp">If a <var class="Ar">branch</var> is specified, only show
2340 039953c9 2021-03-22 stsp commits which at some point in time represented this branch.
2341 039953c9 2021-03-22 stsp Otherwise, list all backed up commits for any branches.</p>
2342 039953c9 2021-03-22 stsp <p class="Pp">If this option is used, <code class="Cm">got rebase</code>
2343 039953c9 2021-03-22 stsp does not require a work tree. None of the other options can be used
2344 039953c9 2021-03-22 stsp together with <code class="Fl">-l</code>.</p>
2345 039953c9 2021-03-22 stsp </dd>
2346 7985a487 2023-01-30 stsp <dt id="X~4"><a class="permalink" href="#X~4"><code class="Fl">-X</code></a></dt>
2347 16cd1323 2021-07-26 stsp <dd>Delete backups created by past rebase operations, represented by
2348 16cd1323 2021-07-26 stsp references in the &#x201C;refs/got/backup/rebase&#x201D; reference
2349 16cd1323 2021-07-26 stsp namespace.
2350 16cd1323 2021-07-26 stsp <p class="Pp">If a <var class="Ar">branch</var> is specified, only
2351 16cd1323 2021-07-26 stsp delete backups which at some point in time represented this branch.
2352 16cd1323 2021-07-26 stsp Otherwise, delete all references found within
2353 16cd1323 2021-07-26 stsp &#x201C;refs/got/backup/rebase&#x201D;.</p>
2354 16cd1323 2021-07-26 stsp <p class="Pp">Any commit, tree, tag, and blob objects belonging to
2355 16cd1323 2021-07-26 stsp deleted backups remain in the repository and may be removed
2356 16cd1323 2021-07-26 stsp separately with Git's garbage collector or <code class="Cm">gotadmin
2357 16cd1323 2021-07-26 stsp cleanup</code>.</p>
2358 16cd1323 2021-07-26 stsp <p class="Pp">If this option is used, <code class="Cm">got rebase</code>
2359 16cd1323 2021-07-26 stsp does not require a work tree. None of the other options can be used
2360 16cd1323 2021-07-26 stsp together with <code class="Fl">-X</code>.</p>
2361 16cd1323 2021-07-26 stsp </dd>
2362 8797b228 2019-08-04 stsp </dl>
2363 8797b228 2019-08-04 stsp </dd>
2364 63b69821 2021-10-16 stsp <dt id="he"><a class="permalink" href="#histedit"><code class="Cm" id="histedit">histedit</code></a>
2365 f6a6fa94 2023-02-22 stsp [<code class="Fl">-aCcdeflmX</code>] [<code class="Fl">-F</code>
2366 63657f42 2022-09-07 stsp <var class="Ar">histedit-script</var>] [<var class="Ar">branch</var>]</dt>
2367 63b69821 2021-10-16 stsp <dd>
2368 63b69821 2021-10-16 stsp <div class="Bd Bd-indent"><code class="Li">(alias:
2369 46043f6f 2021-11-23 stsp <code class="Cm">he</code>)</code></div>
2370 46043f6f 2021-11-23 stsp Edit commit history between the work tree's current base commit and the tip
2371 46043f6f 2021-11-23 stsp commit of the work tree's current branch.
2372 63657f42 2022-09-07 stsp <p class="Pp">The <code class="Cm">got histedit</code> command requires the
2373 63657f42 2022-09-07 stsp <code class="Ev">GOT_AUTHOR</code> environment variable to be set,
2374 63657f42 2022-09-07 stsp unless an author has been configured in
2375 63657f42 2022-09-07 stsp <a class="Xr" aria-label="got.conf, section 5">got.conf(5)</a> or Git's
2376 63657f42 2022-09-07 stsp <code class="Dv">user.name</code> and <code class="Dv">user.email</code>
2377 63657f42 2022-09-07 stsp configuration settings can be obtained from the repository's
2378 63657f42 2022-09-07 stsp <span class="Pa">.git/config</span> file or from Git's global
2379 63657f42 2022-09-07 stsp <span class="Pa">~/.gitconfig</span> configuration file.</p>
2380 b078d5c4 2022-03-23 stsp <p class="Pp">Before starting a <code class="Cm">histedit</code> operation,
2381 7c3b4ab8 2020-02-25 stsp the work tree's current branch must be set with <code class="Cm">got
2382 7c3b4ab8 2020-02-25 stsp update -b</code> to the branch which should be edited, unless this
2383 7c3b4ab8 2020-02-25 stsp branch is already the current branch of the work tree. The tip of this
2384 7c3b4ab8 2020-02-25 stsp branch represents the upper bound (inclusive) of commits touched by the
2385 7c3b4ab8 2020-02-25 stsp <code class="Cm">histedit</code> operation.</p>
2386 7c3b4ab8 2020-02-25 stsp <p class="Pp">Furthermore, the work tree's base commit must be set with
2387 7c3b4ab8 2020-02-25 stsp <code class="Cm">got update -c</code> to a point in this branch's commit
2388 7c3b4ab8 2020-02-25 stsp history where editing should begin. This commit represents the lower
2389 7c3b4ab8 2020-02-25 stsp bound (non-inclusive) of commits touched by the
2390 7c3b4ab8 2020-02-25 stsp <code class="Cm">histedit</code> operation.</p>
2391 8797b228 2019-08-04 stsp <p class="Pp">Editing of commit history is controlled via a
2392 7c3b4ab8 2020-02-25 stsp <var class="Ar">histedit script</var> which can be written in an editor
2393 7c3b4ab8 2020-02-25 stsp based on a template, passed on the command line, or generated with the
2394 297acb86 2023-03-07 stsp <code class="Fl">-d</code>, <code class="Fl">-e</code>,
2395 461d9094 2023-07-19 stsp <code class="Fl">-f</code>, or <code class="Fl">-m</code> options.
2396 461d9094 2023-07-19 stsp Quitting the editor without saving the file will abort the histedit
2397 461d9094 2023-07-19 stsp operation.</p>
2398 7c3b4ab8 2020-02-25 stsp <p class="Pp">The format of the histedit script is line-based. Each line in
2399 7c3b4ab8 2020-02-25 stsp the script begins with a command name, followed by whitespace and an
2400 b183145b 2024-08-14 op argument. For most commands, the expected argument is a commit ID. Any
2401 b183145b 2024-08-14 op remaining text on the line is ignored. Lines which begin with the
2402 b183145b 2024-08-14 op &#x2018;#&#x2019; character are ignored entirely.</p>
2403 51683866 2022-07-14 stsp <p class="Pp">The available histedit script commands are as follows:</p>
2404 8797b228 2019-08-04 stsp <table class="Bl-column">
2405 51683866 2022-07-14 stsp <tr id="pick">
2406 51683866 2022-07-14 stsp <td><a class="permalink" href="#pick"><code class="Cm">pick</code></a>
2407 51683866 2022-07-14 stsp <var class="Ar">commit</var></td>
2408 8797b228 2019-08-04 stsp <td>Use the specified commit as it is.</td>
2409 8797b228 2019-08-04 stsp </tr>
2410 51683866 2022-07-14 stsp <tr id="edit">
2411 51683866 2022-07-14 stsp <td><a class="permalink" href="#edit"><code class="Cm">edit</code></a>
2412 51683866 2022-07-14 stsp <var class="Ar">commit</var></td>
2413 297acb86 2023-03-07 stsp <td>Apply the changes from the specified commit, but then interrupt the
2414 297acb86 2023-03-07 stsp histedit operation for amending, without creating a commit. While the
2415 297acb86 2023-03-07 stsp histedit operation is interrupted arbitrary files may be edited, and
2416 297acb86 2023-03-07 stsp commands which manipulate the work tree can be used freely. The
2417 297acb86 2023-03-07 stsp <code class="Cm">got add</code> and <code class="Cm">got remove</code>
2418 297acb86 2023-03-07 stsp commands can be used to add new files or remove existing ones. The
2419 297acb86 2023-03-07 stsp <code class="Cm">got revert -p</code> command can be used to eliminate
2420 297acb86 2023-03-07 stsp arbitrary changes from files in the work tree. The
2421 297acb86 2023-03-07 stsp <code class="Cm">got stage -p</code> command may be used to prepare a
2422 297acb86 2023-03-07 stsp subset of changes for inclusion in the next commit. Finally, the
2423 297acb86 2023-03-07 stsp <code class="Cm">got commit</code> command can be used to insert
2424 297acb86 2023-03-07 stsp arbitrary commits into the edited history. Regular editing of history
2425 297acb86 2023-03-07 stsp must eventually be resumed by running <code class="Cm">got histedit
2426 297acb86 2023-03-07 stsp -c</code>.</td>
2427 8797b228 2019-08-04 stsp </tr>
2428 51683866 2022-07-14 stsp <tr id="fold">
2429 51683866 2022-07-14 stsp <td><a class="permalink" href="#fold"><code class="Cm">fold</code></a>
2430 51683866 2022-07-14 stsp <var class="Ar">commit</var></td>
2431 8797b228 2019-08-04 stsp <td>Combine the specified commit with the next commit listed further
2432 8797b228 2019-08-04 stsp below that will be used.</td>
2433 8797b228 2019-08-04 stsp </tr>
2434 51683866 2022-07-14 stsp <tr id="drop">
2435 51683866 2022-07-14 stsp <td><a class="permalink" href="#drop"><code class="Cm">drop</code></a>
2436 51683866 2022-07-14 stsp <var class="Ar">commit</var></td>
2437 8797b228 2019-08-04 stsp <td>Remove this commit from the edited history.</td>
2438 8797b228 2019-08-04 stsp </tr>
2439 51683866 2022-07-14 stsp <tr id="mesg">
2440 51683866 2022-07-14 stsp <td><a class="permalink" href="#mesg"><code class="Cm">mesg</code></a>
2441 c8cf51c9 2023-11-29 stsp <var class="Ar">commit</var></td>
2442 c8cf51c9 2023-11-29 stsp <td>Open an editor to create a new log message for this commit.</td>
2443 8797b228 2019-08-04 stsp </tr>
2444 8797b228 2019-08-04 stsp </table>
2445 8797b228 2019-08-04 stsp <p class="Pp">Every commit in the history being edited must be mentioned in
2446 8797b228 2019-08-04 stsp the script. Lines may be re-ordered to change the order of commits in
2447 ae803b74 2020-03-06 stsp the edited history. No commit may be listed more than once.</p>
2448 8797b228 2019-08-04 stsp <p class="Pp">Edited commits are accumulated on a temporary branch which the
2449 8797b228 2019-08-04 stsp work tree will remain switched to throughout the entire histedit
2450 8797b228 2019-08-04 stsp operation. Once history editing has completed successfully, the
2451 8797b228 2019-08-04 stsp temporary branch becomes the new version of the work tree's branch and
2452 8797b228 2019-08-04 stsp the work tree is automatically switched to it.</p>
2453 039953c9 2021-03-22 stsp <p class="Pp">Old commits in their pre-histedit state are automatically
2454 039953c9 2021-03-22 stsp backed up in the &#x201C;refs/got/backup/histedit&#x201D; reference
2455 039953c9 2021-03-22 stsp namespace. As long as these references are not removed older versions of
2456 039953c9 2021-03-22 stsp edited commits will remain in the repository and can be viewed with the
2457 039953c9 2021-03-22 stsp <code class="Cm">got histedit -l</code> command. Removal of these
2458 039953c9 2021-03-22 stsp references makes objects which become unreachable via any reference
2459 16cd1323 2021-07-26 stsp subject to removal by Git's garbage collector or
2460 16cd1323 2021-07-26 stsp <code class="Cm">gotadmin cleanup</code>.</p>
2461 8797b228 2019-08-04 stsp <p class="Pp">While merging commits, show the status of each affected file,
2462 8797b228 2019-08-04 stsp using the following status codes:</p>
2463 8797b228 2019-08-04 stsp <table class="Bl-column">
2464 8797b228 2019-08-04 stsp <tr>
2465 8797b228 2019-08-04 stsp <td>G</td>
2466 8797b228 2019-08-04 stsp <td>file was merged</td>
2467 8797b228 2019-08-04 stsp </tr>
2468 8797b228 2019-08-04 stsp <tr>
2469 8797b228 2019-08-04 stsp <td>C</td>
2470 8797b228 2019-08-04 stsp <td>file was merged and conflicts occurred during merge</td>
2471 8797b228 2019-08-04 stsp </tr>
2472 8797b228 2019-08-04 stsp <tr>
2473 8797b228 2019-08-04 stsp <td>!</td>
2474 8797b228 2019-08-04 stsp <td>changes destined for a missing file were not merged</td>
2475 8797b228 2019-08-04 stsp </tr>
2476 8797b228 2019-08-04 stsp <tr>
2477 8797b228 2019-08-04 stsp <td>D</td>
2478 8797b228 2019-08-04 stsp <td>file was deleted</td>
2479 8797b228 2019-08-04 stsp </tr>
2480 8797b228 2019-08-04 stsp <tr>
2481 8797b228 2019-08-04 stsp <td>d</td>
2482 417cb057 2021-10-03 stsp <td>file's deletion was prevented by local modifications</td>
2483 8797b228 2019-08-04 stsp </tr>
2484 8797b228 2019-08-04 stsp <tr>
2485 8797b228 2019-08-04 stsp <td>A</td>
2486 8797b228 2019-08-04 stsp <td>new file was added</td>
2487 8797b228 2019-08-04 stsp </tr>
2488 8797b228 2019-08-04 stsp <tr>
2489 8797b228 2019-08-04 stsp <td>~</td>
2490 8797b228 2019-08-04 stsp <td>changes destined for a non-regular file were not merged</td>
2491 8797b228 2019-08-04 stsp </tr>
2492 1554b334 2020-08-02 stsp <tr>
2493 1554b334 2020-08-02 stsp <td>?</td>
2494 1554b334 2020-08-02 stsp <td>changes destined for an unversioned file were not merged</td>
2495 1554b334 2020-08-02 stsp </tr>
2496 8797b228 2019-08-04 stsp </table>
2497 b078d5c4 2022-03-23 stsp <p class="Pp">If merge conflicts occur, the histedit operation is
2498 b078d5c4 2022-03-23 stsp interrupted and may be continued once conflicts have been resolved. If
2499 b078d5c4 2022-03-23 stsp any files with destined changes are found to be missing or unversioned,
2500 b078d5c4 2022-03-23 stsp or if files could not be deleted due to differences in deleted content,
2501 b078d5c4 2022-03-23 stsp the histedit operation will be interrupted to prevent potentially
2502 b078d5c4 2022-03-23 stsp incomplete changes from being committed to the repository without user
2503 417cb057 2021-10-03 stsp intervention. The work tree may be modified as desired and the histedit
2504 417cb057 2021-10-03 stsp operation can be continued once the changes present in the work tree are
2505 417cb057 2021-10-03 stsp considered complete. Alternatively, the histedit operation may be
2506 417cb057 2021-10-03 stsp aborted which will leave the work tree switched back to its original
2507 417cb057 2021-10-03 stsp branch.</p>
2508 8797b228 2019-08-04 stsp <p class="Pp">If a merge conflict is resolved in a way which renders the
2509 8797b228 2019-08-04 stsp merged change into a no-op change, the corresponding commit will be
2510 8797b228 2019-08-04 stsp elided when the histedit operation continues.</p>
2511 8797b228 2019-08-04 stsp <p class="Pp"><code class="Cm">got histedit</code> will refuse to run if
2512 8797b228 2019-08-04 stsp certain preconditions are not met. If the work tree's current branch is
2513 8797b228 2019-08-04 stsp not in the &#x201C;refs/heads/&#x201D; reference namespace, the history
2514 8797b228 2019-08-04 stsp of the branch may not be edited. If the work tree contains multiple base
2515 b078d5c4 2022-03-23 stsp commits, it must first be updated to a single base commit with
2516 8797b228 2019-08-04 stsp <code class="Cm">got update</code>. If changes have been staged with
2517 91b3da3f 2019-08-18 stsp <code class="Cm">got stage</code>, these changes must first be committed
2518 8797b228 2019-08-04 stsp with <code class="Cm">got commit</code> or unstaged with
2519 8797b228 2019-08-04 stsp <code class="Cm">got unstage</code>. If the work tree contains local
2520 8797b228 2019-08-04 stsp changes, these changes must first be committed with <code class="Cm">got
2521 8797b228 2019-08-04 stsp commit</code> or reverted with <code class="Cm">got revert</code>. If
2522 8797b228 2019-08-04 stsp the edited history contains changes to files outside of the work tree's
2523 8797b228 2019-08-04 stsp path prefix, the work tree cannot be used to edit the history of this
2524 8797b228 2019-08-04 stsp branch.</p>
2525 7c3b4ab8 2020-02-25 stsp <p class="Pp">The <code class="Cm">got update</code>, <code class="Cm">got
2526 47f19dd5 2023-01-17 stsp rebase</code>, <code class="Cm">got merge</code>, and
2527 47f19dd5 2023-01-17 stsp <code class="Cm">got integrate</code> commands will refuse to run while
2528 47f19dd5 2023-01-17 stsp a histedit operation is in progress. Other commands which manipulate the
2529 47f19dd5 2023-01-17 stsp work tree may be used, and the <code class="Cm">got commit</code>
2530 47f19dd5 2023-01-17 stsp command may be used to commit arbitrary changes to the temporary branch
2531 47f19dd5 2023-01-17 stsp while the histedit operation is interrupted.</p>
2532 8797b228 2019-08-04 stsp <p class="Pp">The options for <code class="Cm">got histedit</code> are as
2533 8797b228 2019-08-04 stsp follows:</p>
2534 8797b228 2019-08-04 stsp <dl class="Bl-tag">
2535 def5be4a 2021-08-31 stsp <dt id="a~6"><a class="permalink" href="#a~6"><code class="Fl">-a</code></a></dt>
2536 8797b228 2019-08-04 stsp <dd>Abort an interrupted histedit operation. If this option is used, no
2537 9b0c768d 2019-08-08 stsp other command-line arguments are allowed.</dd>
2538 f6a6fa94 2023-02-22 stsp <dt id="C~5"><a class="permalink" href="#C~5"><code class="Fl">-C</code></a></dt>
2539 f6a6fa94 2023-02-22 stsp <dd>Allow a histedit operation to continue with files in conflicted
2540 f6a6fa94 2023-02-22 stsp status. This option should generally be avoided, and can only be used
2541 f6a6fa94 2023-02-22 stsp with the <code class="Fl">-c</code> option.</dd>
2542 63657f42 2022-09-07 stsp <dt id="c~12"><a class="permalink" href="#c~12"><code class="Fl">-c</code></a></dt>
2543 8797b228 2019-08-04 stsp <dd>Continue an interrupted histedit operation. If this option is used, no
2544 461d9094 2023-07-19 stsp other command-line arguments are allowed except
2545 461d9094 2023-07-19 stsp <code class="Fl">-C</code>.</dd>
2546 f6a6fa94 2023-02-22 stsp <dt id="d~7"><a class="permalink" href="#d~7"><code class="Fl">-d</code></a></dt>
2547 f6a6fa94 2023-02-22 stsp <dd>Drop all commits. This option is a quick equivalent to a histedit
2548 f6a6fa94 2023-02-22 stsp script which drops all commits. The <code class="Fl">-d</code> option
2549 f6a6fa94 2023-02-22 stsp can only be used when starting a new histedit operation. If this
2550 f6a6fa94 2023-02-22 stsp option is used, no other command-line arguments are allowed.</dd>
2551 417cb057 2021-10-03 stsp <dt id="e"><a class="permalink" href="#e"><code class="Fl">-e</code></a></dt>
2552 417cb057 2021-10-03 stsp <dd>Interrupt the histedit operation for editing after merging each
2553 417cb057 2021-10-03 stsp commit. This option is a quick equivalent to a histedit script which
2554 417cb057 2021-10-03 stsp uses the <code class="Cm">edit</code> command for all commits. The
2555 417cb057 2021-10-03 stsp <code class="Fl">-e</code> option can only be used when starting a new
2556 417cb057 2021-10-03 stsp histedit operation. If this option is used, no other command-line
2557 417cb057 2021-10-03 stsp arguments are allowed.</dd>
2558 039953c9 2021-03-22 stsp <dt id="F~3"><a class="permalink" href="#F~3"><code class="Fl">-F</code></a>
2559 7c3b4ab8 2020-02-25 stsp <var class="Ar">histedit-script</var></dt>
2560 7c3b4ab8 2020-02-25 stsp <dd>Use the specified <var class="Ar">histedit-script</var> instead of
2561 7c3b4ab8 2020-02-25 stsp opening a temporary file in an editor where a histedit script can be
2562 7c3b4ab8 2020-02-25 stsp written.</dd>
2563 63657f42 2022-09-07 stsp <dt id="f~3"><a class="permalink" href="#f~3"><code class="Fl">-f</code></a></dt>
2564 63657f42 2022-09-07 stsp <dd>Fold all commits into a single commit. This option is a quick
2565 63657f42 2022-09-07 stsp equivalent to a histedit script which folds all commits, combining
2566 63657f42 2022-09-07 stsp them all into one commit. The <code class="Fl">-f</code> option can
2567 7c3b4ab8 2020-02-25 stsp only be used when starting a new histedit operation. If this option is
2568 7c3b4ab8 2020-02-25 stsp used, no other command-line arguments are allowed.</dd>
2569 7985a487 2023-01-30 stsp <dt id="l~10"><a class="permalink" href="#l~10"><code class="Fl">-l</code></a></dt>
2570 039953c9 2021-03-22 stsp <dd>Show a list of past histedit operations, represented by references in
2571 039953c9 2021-03-22 stsp the &#x201C;refs/got/backup/histedit&#x201D; reference namespace.
2572 039953c9 2021-03-22 stsp <p class="Pp">Display the author, date, and log message of each backed
2573 039953c9 2021-03-22 stsp up commit, the object ID of the corresponding post-histedit commit,
2574 039953c9 2021-03-22 stsp and the object ID of their common ancestor commit. Given these
2575 039953c9 2021-03-22 stsp object IDs, the <code class="Cm">got log</code> command with the
2576 039953c9 2021-03-22 stsp <code class="Fl">-c</code> and <code class="Fl">-x</code> options
2577 039953c9 2021-03-22 stsp can be used to examine the history of either version of the branch,
2578 039953c9 2021-03-22 stsp and the <code class="Cm">got branch</code> command with the
2579 039953c9 2021-03-22 stsp <code class="Fl">-c</code> option can be used to create a new branch
2580 039953c9 2021-03-22 stsp from a pre-histedit state if desired.</p>
2581 039953c9 2021-03-22 stsp <p class="Pp">If a <var class="Ar">branch</var> is specified, only show
2582 039953c9 2021-03-22 stsp commits which at some point in time represented this branch.
2583 039953c9 2021-03-22 stsp Otherwise, list all backed up commits for any branches.</p>
2584 039953c9 2021-03-22 stsp <p class="Pp">If this option is used, <code class="Cm">got
2585 039953c9 2021-03-22 stsp histedit</code> does not require a work tree. None of the other
2586 039953c9 2021-03-22 stsp options can be used together with <code class="Fl">-l</code>.</p>
2587 16cd1323 2021-07-26 stsp </dd>
2588 63657f42 2022-09-07 stsp <dt id="m~5"><a class="permalink" href="#m~5"><code class="Fl">-m</code></a></dt>
2589 63657f42 2022-09-07 stsp <dd>Edit log messages only. This option is a quick equivalent to a
2590 63657f42 2022-09-07 stsp histedit script which edits only log messages but otherwise leaves
2591 63657f42 2022-09-07 stsp every picked commit as-is. The <code class="Fl">-m</code> option can
2592 63657f42 2022-09-07 stsp only be used when starting a new histedit operation. If this option is
2593 63657f42 2022-09-07 stsp used, no other command-line arguments are allowed.</dd>
2594 7985a487 2023-01-30 stsp <dt id="X~5"><a class="permalink" href="#X~5"><code class="Fl">-X</code></a></dt>
2595 16cd1323 2021-07-26 stsp <dd>Delete backups created by past histedit operations, represented by
2596 16cd1323 2021-07-26 stsp references in the &#x201C;refs/got/backup/histedit&#x201D; reference
2597 16cd1323 2021-07-26 stsp namespace.
2598 16cd1323 2021-07-26 stsp <p class="Pp">If a <var class="Ar">branch</var> is specified, only
2599 16cd1323 2021-07-26 stsp delete backups which at some point in time represented this branch.
2600 16cd1323 2021-07-26 stsp Otherwise, delete all references found within
2601 16cd1323 2021-07-26 stsp &#x201C;refs/got/backup/histedit&#x201D;.</p>
2602 16cd1323 2021-07-26 stsp <p class="Pp">Any commit, tree, tag, and blob objects belonging to
2603 16cd1323 2021-07-26 stsp deleted backups remain in the repository and may be removed
2604 16cd1323 2021-07-26 stsp separately with Git's garbage collector or <code class="Cm">gotadmin
2605 16cd1323 2021-07-26 stsp cleanup</code>.</p>
2606 16cd1323 2021-07-26 stsp <p class="Pp">If this option is used, <code class="Cm">got
2607 16cd1323 2021-07-26 stsp histedit</code> does not require a work tree. None of the other
2608 16cd1323 2021-07-26 stsp options can be used together with <code class="Fl">-X</code>.</p>
2609 039953c9 2021-03-22 stsp </dd>
2610 8797b228 2019-08-04 stsp </dl>
2611 8797b228 2019-08-04 stsp </dd>
2612 63b69821 2021-10-16 stsp <dt id="ig"><a class="permalink" href="#integrate"><code class="Cm" id="integrate">integrate</code></a>
2613 d8e62599 2019-10-21 stsp <var class="Ar">branch</var></dt>
2614 63b69821 2021-10-16 stsp <dd>
2615 63b69821 2021-10-16 stsp <div class="Bd Bd-indent"><code class="Li">(alias:
2616 46043f6f 2021-11-23 stsp <code class="Cm">ig</code>)</code></div>
2617 46043f6f 2021-11-23 stsp Integrate the specified <var class="Ar">branch</var> into the work tree's
2618 d8e62599 2019-10-21 stsp current branch. Files in the work tree are updated to match the contents
2619 d8e62599 2019-10-21 stsp on the integrated <var class="Ar">branch</var>, and the reference of the
2620 d8e62599 2019-10-21 stsp work tree's branch is changed to point at the head commit of the
2621 d8e62599 2019-10-21 stsp integrated <var class="Ar">branch</var>.
2622 d8e62599 2019-10-21 stsp <p class="Pp">Both branches can be considered equivalent after integration
2623 d8e62599 2019-10-21 stsp since they will be pointing at the same commit. Both branches remain
2624 d8e62599 2019-10-21 stsp available for future work, if desired. In case the integrated
2625 d8e62599 2019-10-21 stsp <var class="Ar">branch</var> is no longer needed it may be deleted with
2626 d8e62599 2019-10-21 stsp <code class="Cm">got branch -d</code>.</p>
2627 d8e62599 2019-10-21 stsp <p class="Pp">Show the status of each affected file, using the following
2628 d8e62599 2019-10-21 stsp status codes:</p>
2629 d8e62599 2019-10-21 stsp <table class="Bl-column">
2630 d8e62599 2019-10-21 stsp <tr>
2631 d8e62599 2019-10-21 stsp <td>U</td>
2632 d8e62599 2019-10-21 stsp <td>file was updated</td>
2633 d8e62599 2019-10-21 stsp </tr>
2634 d8e62599 2019-10-21 stsp <tr>
2635 d8e62599 2019-10-21 stsp <td>D</td>
2636 d8e62599 2019-10-21 stsp <td>file was deleted</td>
2637 d8e62599 2019-10-21 stsp </tr>
2638 d8e62599 2019-10-21 stsp <tr>
2639 d8e62599 2019-10-21 stsp <td>A</td>
2640 d8e62599 2019-10-21 stsp <td>new file was added</td>
2641 d8e62599 2019-10-21 stsp </tr>
2642 d8e62599 2019-10-21 stsp <tr>
2643 d8e62599 2019-10-21 stsp <td>~</td>
2644 d8e62599 2019-10-21 stsp <td>versioned file is obstructed by a non-regular file</td>
2645 d8e62599 2019-10-21 stsp </tr>
2646 d8e62599 2019-10-21 stsp <tr>
2647 d8e62599 2019-10-21 stsp <td>!</td>
2648 d8e62599 2019-10-21 stsp <td>a missing versioned file was restored</td>
2649 d8e62599 2019-10-21 stsp </tr>
2650 d8e62599 2019-10-21 stsp </table>
2651 d8e62599 2019-10-21 stsp <p class="Pp"><code class="Cm">got integrate</code> will refuse to run if
2652 d8e62599 2019-10-21 stsp certain preconditions are not met. Most importantly, the
2653 d8e62599 2019-10-21 stsp <var class="Ar">branch</var> must have been rebased onto the work tree's
2654 d8e62599 2019-10-21 stsp current branch with <code class="Cm">got rebase</code> before it can be
2655 d8e62599 2019-10-21 stsp integrated, in order to linearize commit history and resolve merge
2656 b078d5c4 2022-03-23 stsp conflicts. If the work tree contains multiple base commits, it must
2657 b078d5c4 2022-03-23 stsp first be updated to a single base commit with <code class="Cm">got
2658 d8e62599 2019-10-21 stsp update</code>. If changes have been staged with <code class="Cm">got
2659 d8e62599 2019-10-21 stsp stage</code>, these changes must first be committed with
2660 d8e62599 2019-10-21 stsp <code class="Cm">got commit</code> or unstaged with <code class="Cm">got
2661 d8e62599 2019-10-21 stsp unstage</code>. If the work tree contains local changes, these changes
2662 d8e62599 2019-10-21 stsp must first be committed with <code class="Cm">got commit</code> or
2663 d8e62599 2019-10-21 stsp reverted with <code class="Cm">got revert</code>.</p>
2664 d8e62599 2019-10-21 stsp </dd>
2665 63b69821 2021-10-16 stsp <dt id="mg"><a class="permalink" href="#merge"><code class="Cm" id="merge">merge</code></a>
2666 461d9094 2023-07-19 stsp [<code class="Fl">-aCcMn</code>] [<var class="Ar">branch</var>]</dt>
2667 63b69821 2021-10-16 stsp <dd>
2668 63b69821 2021-10-16 stsp <div class="Bd Bd-indent"><code class="Li">(alias:
2669 46043f6f 2021-11-23 stsp <code class="Cm">mg</code>)</code></div>
2670 41ae98c9 2023-06-23 stsp Merge the specified <var class="Ar">branch</var> into the current branch of
2671 c8cf51c9 2023-11-29 stsp the work tree. If the branches have diverged, merge changes into the work
2672 c8cf51c9 2023-11-29 stsp tree and create a merge commit. Otherwise, if the specified
2673 c8cf51c9 2023-11-29 stsp <var class="Ar">branch</var> is already based on the work tree's current
2674 c8cf51c9 2023-11-29 stsp branch, make the work tree's current branch equivalent to the specified
2675 c8cf51c9 2023-11-29 stsp <var class="Ar">branch</var> and update files in the work tree
2676 c8cf51c9 2023-11-29 stsp accordingly.
2677 417cb057 2021-10-03 stsp <p class="Pp">Merge commits are commits based on multiple parent commits.
2678 c8cf51c9 2023-11-29 stsp The tip commit of the work tree's current branch will be used as the
2679 c8cf51c9 2023-11-29 stsp first parent. The tip commit of the specified
2680 c8cf51c9 2023-11-29 stsp <var class="Ar">branch</var> will be used as the second parent. The work
2681 c8cf51c9 2023-11-29 stsp tree's current branch must be in the &#x201C;refs/heads/&#x201D;
2682 c8cf51c9 2023-11-29 stsp reference namespace and can be set with <code class="Cm">got update
2683 c8cf51c9 2023-11-29 stsp -b</code> before starting the <code class="Cm">merge</code>
2684 c8cf51c9 2023-11-29 stsp operation.</p>
2685 417cb057 2021-10-03 stsp <p class="Pp">No ancestral relationship between the two branches is
2686 417cb057 2021-10-03 stsp required. If the two branches have already been merged previously, only
2687 417cb057 2021-10-03 stsp new changes will be merged.</p>
2688 417cb057 2021-10-03 stsp <p class="Pp">It is not possible to create merge commits with more than two
2689 417cb057 2021-10-03 stsp parents. If more than one branch needs to be merged, then multiple merge
2690 417cb057 2021-10-03 stsp commits with two parents each can be created in sequence.</p>
2691 c8cf51c9 2023-11-29 stsp <p class="Pp">If a linear project history is desired, then use of
2692 c8cf51c9 2023-11-29 stsp <code class="Cm">got rebase</code> should generally be preferred over
2693 c8cf51c9 2023-11-29 stsp <code class="Cm">got merge</code>. However, even strictly linear
2694 c8cf51c9 2023-11-29 stsp projects may require occasional merge commits, for example in order to
2695 c8cf51c9 2023-11-29 stsp merge in new versions of third-party code stored on
2696 c8cf51c9 2023-11-29 stsp &#x201C;vendor&#x201D; branches created with <code class="Cm">got
2697 c8cf51c9 2023-11-29 stsp import</code>.</p>
2698 417cb057 2021-10-03 stsp <p class="Pp">While merging changes found on the
2699 417cb057 2021-10-03 stsp <var class="Ar">branch</var> into the work tree, show the status of each
2700 417cb057 2021-10-03 stsp affected file, using the following status codes:</p>
2701 417cb057 2021-10-03 stsp <table class="Bl-column">
2702 b6df88e2 2024-12-28 stsp <tr>
2703 b6df88e2 2024-12-28 stsp <td>U</td>
2704 b6df88e2 2024-12-28 stsp <td>file was updated</td>
2705 b6df88e2 2024-12-28 stsp </tr>
2706 417cb057 2021-10-03 stsp <tr>
2707 417cb057 2021-10-03 stsp <td>G</td>
2708 417cb057 2021-10-03 stsp <td>file was merged</td>
2709 417cb057 2021-10-03 stsp </tr>
2710 417cb057 2021-10-03 stsp <tr>
2711 417cb057 2021-10-03 stsp <td>C</td>
2712 417cb057 2021-10-03 stsp <td>file was merged and conflicts occurred during merge</td>
2713 417cb057 2021-10-03 stsp </tr>
2714 417cb057 2021-10-03 stsp <tr>
2715 417cb057 2021-10-03 stsp <td>!</td>
2716 417cb057 2021-10-03 stsp <td>changes destined for a missing file were not merged</td>
2717 417cb057 2021-10-03 stsp </tr>
2718 417cb057 2021-10-03 stsp <tr>
2719 417cb057 2021-10-03 stsp <td>D</td>
2720 417cb057 2021-10-03 stsp <td>file was deleted</td>
2721 417cb057 2021-10-03 stsp </tr>
2722 417cb057 2021-10-03 stsp <tr>
2723 417cb057 2021-10-03 stsp <td>d</td>
2724 417cb057 2021-10-03 stsp <td>file's deletion was prevented by local modifications</td>
2725 417cb057 2021-10-03 stsp </tr>
2726 417cb057 2021-10-03 stsp <tr>
2727 417cb057 2021-10-03 stsp <td>A</td>
2728 417cb057 2021-10-03 stsp <td>new file was added</td>
2729 417cb057 2021-10-03 stsp </tr>
2730 417cb057 2021-10-03 stsp <tr>
2731 417cb057 2021-10-03 stsp <td>~</td>
2732 417cb057 2021-10-03 stsp <td>changes destined for a non-regular file were not merged</td>
2733 417cb057 2021-10-03 stsp </tr>
2734 417cb057 2021-10-03 stsp <tr>
2735 417cb057 2021-10-03 stsp <td>?</td>
2736 417cb057 2021-10-03 stsp <td>changes destined for an unversioned file were not merged</td>
2737 417cb057 2021-10-03 stsp </tr>
2738 417cb057 2021-10-03 stsp </table>
2739 417cb057 2021-10-03 stsp <p class="Pp">If merge conflicts occur, the merge operation is interrupted
2740 417cb057 2021-10-03 stsp and conflicts must be resolved before the merge operation can continue.
2741 417cb057 2021-10-03 stsp If any files with destined changes are found to be missing or
2742 417cb057 2021-10-03 stsp unversioned, or if files could not be deleted due to differences in
2743 417cb057 2021-10-03 stsp deleted content, the merge operation will be interrupted to prevent
2744 417cb057 2021-10-03 stsp potentially incomplete changes from being committed to the repository
2745 417cb057 2021-10-03 stsp without user intervention. The work tree may be modified as desired and
2746 417cb057 2021-10-03 stsp the merge can be continued once the changes present in the work tree are
2747 417cb057 2021-10-03 stsp considered complete. Alternatively, the merge operation may be aborted
2748 417cb057 2021-10-03 stsp which will leave the work tree's current branch unmodified.</p>
2749 417cb057 2021-10-03 stsp <p class="Pp"><code class="Cm">got merge</code> will refuse to run if
2750 41ae98c9 2023-06-23 stsp certain preconditions are not met. If the work tree's current branch is
2751 41ae98c9 2023-06-23 stsp not in the &#x201C;refs/heads/&#x201D; reference namespace then the work
2752 41ae98c9 2023-06-23 stsp tree must first be switched to a branch in the
2753 41ae98c9 2023-06-23 stsp &#x201C;refs/heads/&#x201D; namespace with <code class="Cm">got update
2754 41ae98c9 2023-06-23 stsp -b</code>. If the work tree is not yet fully updated to the tip commit
2755 41ae98c9 2023-06-23 stsp of its branch, then the work tree must first be updated with
2756 41ae98c9 2023-06-23 stsp <code class="Cm">got update</code>. If the work tree contains multiple
2757 41ae98c9 2023-06-23 stsp base commits, it must first be updated to a single base commit with
2758 41ae98c9 2023-06-23 stsp <code class="Cm">got update</code>. If changes have been staged with
2759 41ae98c9 2023-06-23 stsp <code class="Cm">got stage</code>, these changes must first be committed
2760 41ae98c9 2023-06-23 stsp with <code class="Cm">got commit</code> or unstaged with
2761 41ae98c9 2023-06-23 stsp <code class="Cm">got unstage</code>. If the work tree contains local
2762 41ae98c9 2023-06-23 stsp changes, these changes must first be committed with <code class="Cm">got
2763 41ae98c9 2023-06-23 stsp commit</code> or reverted with <code class="Cm">got revert</code>. If
2764 41ae98c9 2023-06-23 stsp the <var class="Ar">branch</var> contains changes to files outside of
2765 41ae98c9 2023-06-23 stsp the work tree's path prefix, the work tree cannot be used to merge this
2766 41ae98c9 2023-06-23 stsp branch.</p>
2767 417cb057 2021-10-03 stsp <p class="Pp">The <code class="Cm">got update</code>, <code class="Cm">got
2768 417cb057 2021-10-03 stsp commit</code>, <code class="Cm">got rebase</code>, <code class="Cm">got
2769 417cb057 2021-10-03 stsp histedit</code>, <code class="Cm">got integrate</code>, and
2770 417cb057 2021-10-03 stsp <code class="Cm">got stage</code> commands will refuse to run while a
2771 417cb057 2021-10-03 stsp merge operation is in progress. Other commands which manipulate the work
2772 417cb057 2021-10-03 stsp tree may be used for conflict resolution purposes.</p>
2773 417cb057 2021-10-03 stsp <p class="Pp">The options for <code class="Cm">got merge</code> are as
2774 417cb057 2021-10-03 stsp follows:</p>
2775 417cb057 2021-10-03 stsp <dl class="Bl-tag">
2776 417cb057 2021-10-03 stsp <dt id="a~7"><a class="permalink" href="#a~7"><code class="Fl">-a</code></a></dt>
2777 417cb057 2021-10-03 stsp <dd>Abort an interrupted merge operation. If this option is used, no other
2778 417cb057 2021-10-03 stsp command-line arguments are allowed.</dd>
2779 f6a6fa94 2023-02-22 stsp <dt id="C~6"><a class="permalink" href="#C~6"><code class="Fl">-C</code></a></dt>
2780 f6a6fa94 2023-02-22 stsp <dd>Allow a merge operation to continue with files in conflicted status.
2781 f6a6fa94 2023-02-22 stsp This option should generally be avoided, and can only be used with the
2782 f6a6fa94 2023-02-22 stsp <code class="Fl">-c</code> option.</dd>
2783 63657f42 2022-09-07 stsp <dt id="c~13"><a class="permalink" href="#c~13"><code class="Fl">-c</code></a></dt>
2784 417cb057 2021-10-03 stsp <dd>Continue an interrupted merge operation. If this option is used, no
2785 461d9094 2023-07-19 stsp other command-line arguments are allowed except
2786 461d9094 2023-07-19 stsp <code class="Fl">-C</code>.</dd>
2787 461d9094 2023-07-19 stsp <dt id="M"><a class="permalink" href="#M"><code class="Fl">-M</code></a></dt>
2788 461d9094 2023-07-19 stsp <dd>Create a merge commit even if the branches have not diverged.</dd>
2789 fd9580e1 2022-11-03 stsp <dt id="n~4"><a class="permalink" href="#n~4"><code class="Fl">-n</code></a></dt>
2790 417cb057 2021-10-03 stsp <dd>Merge changes into the work tree as usual but do not create a merge
2791 417cb057 2021-10-03 stsp commit immediately. The merge result can be adjusted as desired before
2792 417cb057 2021-10-03 stsp a merge commit is created with <code class="Cm">got merge -c</code>.
2793 417cb057 2021-10-03 stsp Alternatively, the merge may be aborted with <code class="Cm">got
2794 417cb057 2021-10-03 stsp merge -a</code>.</dd>
2795 417cb057 2021-10-03 stsp </dl>
2796 417cb057 2021-10-03 stsp </dd>
2797 63b69821 2021-10-16 stsp <dt id="sg"><a class="permalink" href="#stage"><code class="Cm" id="stage">stage</code></a>
2798 dfc34448 2024-05-06 stsp [<code class="Fl">-lpS</code>] [<code class="Fl">-F</code>
2799 63657f42 2022-09-07 stsp <var class="Ar">response-script</var>] [<var class="Ar">path ...</var>]</dt>
2800 63b69821 2021-10-16 stsp <dd>
2801 63b69821 2021-10-16 stsp <div class="Bd Bd-indent"><code class="Li">(alias:
2802 46043f6f 2021-11-23 stsp <code class="Cm">sg</code>)</code></div>
2803 46043f6f 2021-11-23 stsp Stage local changes for inclusion in the next commit. If no
2804 e0ed36ae 2019-08-07 stsp <var class="Ar">path</var> is specified, stage all changes in the work
2805 e0ed36ae 2019-08-07 stsp tree. Otherwise, stage changes at or within the specified paths. Paths may
2806 e0ed36ae 2019-08-07 stsp be staged if they are added, modified, or deleted according to
2807 e0ed36ae 2019-08-07 stsp <code class="Cm">got status</code>.
2808 00261839 2019-08-05 stsp <p class="Pp">Show the status of each affected file, using the following
2809 00261839 2019-08-05 stsp status codes:</p>
2810 00261839 2019-08-05 stsp <table class="Bl-column">
2811 00261839 2019-08-05 stsp <tr>
2812 00261839 2019-08-05 stsp <td>A</td>
2813 00261839 2019-08-05 stsp <td>file addition has been staged</td>
2814 00261839 2019-08-05 stsp </tr>
2815 00261839 2019-08-05 stsp <tr>
2816 00261839 2019-08-05 stsp <td>M</td>
2817 00261839 2019-08-05 stsp <td>file modification has been staged</td>
2818 00261839 2019-08-05 stsp </tr>
2819 00261839 2019-08-05 stsp <tr>
2820 00261839 2019-08-05 stsp <td>D</td>
2821 00261839 2019-08-05 stsp <td>file deletion has been staged</td>
2822 00261839 2019-08-05 stsp </tr>
2823 00261839 2019-08-05 stsp </table>
2824 00261839 2019-08-05 stsp <p class="Pp">Staged file contents are saved in newly created blob objects
2825 00261839 2019-08-05 stsp in the repository. These blobs will be referred to by tree objects once
2826 00261839 2019-08-05 stsp staged changes have been committed.</p>
2827 8797b228 2019-08-04 stsp <p class="Pp">Staged changes affect the behaviour of <code class="Cm">got
2828 8797b228 2019-08-04 stsp commit</code>, <code class="Cm">got status</code>, and
2829 8797b228 2019-08-04 stsp <code class="Cm">got diff</code>. While paths with staged changes exist,
2830 8797b228 2019-08-04 stsp the <code class="Cm">got commit</code> command will refuse to commit any
2831 8797b228 2019-08-04 stsp paths which do not have staged changes. Local changes created on top of
2832 8797b228 2019-08-04 stsp staged changes can only be committed if the path is staged again, or if
2833 8797b228 2019-08-04 stsp the staged changes are committed first. The <code class="Cm">got
2834 8797b228 2019-08-04 stsp status</code> command will show both local changes and staged changes.
2835 8797b228 2019-08-04 stsp The <code class="Cm">got diff</code> command is able to display local
2836 8797b228 2019-08-04 stsp changes relative to staged changes, and to display staged changes
2837 8797b228 2019-08-04 stsp relative to the repository. The <code class="Cm">got revert</code>
2838 8797b228 2019-08-04 stsp command cannot revert staged changes but may be used to revert local
2839 fc62dacd 2019-08-08 stsp changes created on top of staged changes.</p>
2840 8797b228 2019-08-04 stsp <p class="Pp">The options for <code class="Cm">got stage</code> are as
2841 8797b228 2019-08-04 stsp follows:</p>
2842 8797b228 2019-08-04 stsp <dl class="Bl-tag">
2843 63657f42 2022-09-07 stsp <dt id="F~4"><a class="permalink" href="#F~4"><code class="Fl">-F</code></a>
2844 63657f42 2022-09-07 stsp <var class="Ar">response-script</var></dt>
2845 63657f42 2022-09-07 stsp <dd>With the <code class="Fl">-p</code> option, read &#x201C;y&#x201D;,
2846 63657f42 2022-09-07 stsp &#x201C;n&#x201D;, and &#x201C;q&#x201D; responses line-by-line from
2847 63657f42 2022-09-07 stsp the specified <var class="Ar">response-script</var> file instead of
2848 63657f42 2022-09-07 stsp prompting interactively.</dd>
2849 7985a487 2023-01-30 stsp <dt id="l~11"><a class="permalink" href="#l~11"><code class="Fl">-l</code></a></dt>
2850 8797b228 2019-08-04 stsp <dd>Instead of staging new changes, list paths which are already staged,
2851 00261839 2019-08-05 stsp along with the IDs of staged blob objects and stage status codes. If
2852 b078d5c4 2022-03-23 stsp paths were provided on the command line, show the staged paths among
2853 00261839 2019-08-05 stsp the specified paths. Otherwise, show all staged paths.</dd>
2854 15ba8349 2022-04-24 stsp <dt id="p~5"><a class="permalink" href="#p~5"><code class="Fl">-p</code></a></dt>
2855 e0ed36ae 2019-08-07 stsp <dd>Instead of staging the entire content of a changed file, interactively
2856 fc62dacd 2019-08-08 stsp select or reject changes for staging based on &#x201C;y&#x201D; (stage
2857 fc62dacd 2019-08-08 stsp change), &#x201C;n&#x201D; (reject change), and &#x201C;q&#x201D;
2858 fc62dacd 2019-08-08 stsp (quit staging this file) responses. If a file is in modified status,
2859 fc62dacd 2019-08-08 stsp individual patches derived from the modified file content can be
2860 fc62dacd 2019-08-08 stsp staged. Files in added or deleted status may only be staged or
2861 fc62dacd 2019-08-08 stsp rejected in their entirety.</dd>
2862 b6df88e2 2024-12-28 stsp <dt id="S~5"><a class="permalink" href="#S~5"><code class="Fl">-S</code></a></dt>
2863 1554b334 2020-08-02 stsp <dd>Allow staging of symbolic links which point outside of the path space
2864 1554b334 2020-08-02 stsp that is under version control. By default, <code class="Cm">got
2865 1554b334 2020-08-02 stsp stage</code> will reject such symbolic links due to safety concerns.
2866 1554b334 2020-08-02 stsp As a precaution, <code class="Nm">got</code> may decide to represent
2867 1554b334 2020-08-02 stsp such a symbolic link as a regular file which contains the link's
2868 1554b334 2020-08-02 stsp target path, rather than creating an actual symbolic link which points
2869 1554b334 2020-08-02 stsp outside of the work tree. Use of this option is discouraged because
2870 1554b334 2020-08-02 stsp external mechanisms such as &#x201C;make obj&#x201D; are better suited
2871 1554b334 2020-08-02 stsp for managing symbolic links to paths not under version control.</dd>
2872 8797b228 2019-08-04 stsp </dl>
2873 8797b228 2019-08-04 stsp <p class="Pp"><code class="Cm">got stage</code> will refuse to run if
2874 8797b228 2019-08-04 stsp certain preconditions are not met. If a file contains merge conflicts,
2875 8797b228 2019-08-04 stsp these conflicts must be resolved first. If a file is found to be out of
2876 8797b228 2019-08-04 stsp date relative to the head commit on the work tree's current branch, the
2877 8797b228 2019-08-04 stsp file must be updated with <code class="Cm">got update</code> before it
2878 8797b228 2019-08-04 stsp can be staged (however, this does not prevent the file from becoming
2879 8797b228 2019-08-04 stsp out-of-date at some point after having been staged).</p>
2880 8797b228 2019-08-04 stsp <p class="Pp">The <code class="Cm">got update</code>, <code class="Cm">got
2881 461d9094 2023-07-19 stsp rebase</code>, <code class="Cm">got merge</code>, and
2882 461d9094 2023-07-19 stsp <code class="Cm">got histedit</code> commands will refuse to run while
2883 461d9094 2023-07-19 stsp staged changes exist. If staged changes cannot be committed because a
2884 461d9094 2023-07-19 stsp staged path is out of date, the path must be unstaged with
2885 461d9094 2023-07-19 stsp <code class="Cm">got unstage</code> before it can be updated with
2886 461d9094 2023-07-19 stsp <code class="Cm">got update</code>, and may then be staged again if
2887 461d9094 2023-07-19 stsp necessary.</p>
2888 8797b228 2019-08-04 stsp </dd>
2889 63b69821 2021-10-16 stsp <dt id="ug"><a class="permalink" href="#unstage"><code class="Cm" id="unstage">unstage</code></a>
2890 dfc34448 2024-05-06 stsp [<code class="Fl">-p</code>] [<code class="Fl">-F</code>
2891 fc62dacd 2019-08-08 stsp <var class="Ar">response-script</var>] [<var class="Ar">path ...</var>]</dt>
2892 63b69821 2021-10-16 stsp <dd>
2893 63b69821 2021-10-16 stsp <div class="Bd Bd-indent"><code class="Li">(alias:
2894 46043f6f 2021-11-23 stsp <code class="Cm">ug</code>)</code></div>
2895 46043f6f 2021-11-23 stsp Merge staged changes back into the work tree and put affected paths back
2896 8797b228 2019-08-04 stsp into non-staged status. If no <var class="Ar">path</var> is specified,
2897 e0ed36ae 2019-08-07 stsp unstage all staged changes across the entire work tree. Otherwise, unstage
2898 e0ed36ae 2019-08-07 stsp changes at or within the specified paths.
2899 8797b228 2019-08-04 stsp <p class="Pp">Show the status of each affected file, using the following
2900 8797b228 2019-08-04 stsp status codes:</p>
2901 8797b228 2019-08-04 stsp <table class="Bl-column">
2902 8797b228 2019-08-04 stsp <tr>
2903 8797b228 2019-08-04 stsp <td>G</td>
2904 8797b228 2019-08-04 stsp <td>file was unstaged</td>
2905 8797b228 2019-08-04 stsp </tr>
2906 8797b228 2019-08-04 stsp <tr>
2907 8797b228 2019-08-04 stsp <td>C</td>
2908 8797b228 2019-08-04 stsp <td>file was unstaged and conflicts occurred during merge</td>
2909 8797b228 2019-08-04 stsp </tr>
2910 8797b228 2019-08-04 stsp <tr>
2911 8797b228 2019-08-04 stsp <td>!</td>
2912 8797b228 2019-08-04 stsp <td>changes destined for a missing file were not merged</td>
2913 8797b228 2019-08-04 stsp </tr>
2914 8797b228 2019-08-04 stsp <tr>
2915 8797b228 2019-08-04 stsp <td>D</td>
2916 8797b228 2019-08-04 stsp <td>file was staged as deleted and still is deleted</td>
2917 8797b228 2019-08-04 stsp </tr>
2918 8797b228 2019-08-04 stsp <tr>
2919 8797b228 2019-08-04 stsp <td>d</td>
2920 417cb057 2021-10-03 stsp <td>file's deletion was prevented by local modifications</td>
2921 8797b228 2019-08-04 stsp </tr>
2922 8797b228 2019-08-04 stsp <tr>
2923 8797b228 2019-08-04 stsp <td>~</td>
2924 8797b228 2019-08-04 stsp <td>changes destined for a non-regular file were not merged</td>
2925 8797b228 2019-08-04 stsp </tr>
2926 8797b228 2019-08-04 stsp </table>
2927 fc62dacd 2019-08-08 stsp <p class="Pp">The options for <code class="Cm">got unstage</code> are as
2928 fc62dacd 2019-08-08 stsp follows:</p>
2929 fc62dacd 2019-08-08 stsp <dl class="Bl-tag">
2930 63657f42 2022-09-07 stsp <dt id="F~5"><a class="permalink" href="#F~5"><code class="Fl">-F</code></a>
2931 63657f42 2022-09-07 stsp <var class="Ar">response-script</var></dt>
2932 63657f42 2022-09-07 stsp <dd>With the <code class="Fl">-p</code> option, read &#x201C;y&#x201D;,
2933 63657f42 2022-09-07 stsp &#x201C;n&#x201D;, and &#x201C;q&#x201D; responses line-by-line from
2934 63657f42 2022-09-07 stsp the specified <var class="Ar">response-script</var> file instead of
2935 63657f42 2022-09-07 stsp prompting interactively.</dd>
2936 15ba8349 2022-04-24 stsp <dt id="p~6"><a class="permalink" href="#p~6"><code class="Fl">-p</code></a></dt>
2937 fc62dacd 2019-08-08 stsp <dd>Instead of unstaging the entire content of a changed file,
2938 fc62dacd 2019-08-08 stsp interactively select or reject changes for unstaging based on
2939 fc62dacd 2019-08-08 stsp &#x201C;y&#x201D; (unstage change), &#x201C;n&#x201D; (keep change
2940 fc62dacd 2019-08-08 stsp staged), and &#x201C;q&#x201D; (quit unstaging this file) responses.
2941 fc62dacd 2019-08-08 stsp If a file is staged in modified status, individual patches derived
2942 fc62dacd 2019-08-08 stsp from the staged file content can be unstaged. Files staged in added or
2943 fc62dacd 2019-08-08 stsp deleted status may only be unstaged in their entirety.</dd>
2944 fc62dacd 2019-08-08 stsp </dl>
2945 8797b228 2019-08-04 stsp </dd>
2946 2dbbbc3a 2020-07-23 stsp <dt id="cat"><a class="permalink" href="#cat"><code class="Cm">cat</code></a>
2947 63657f42 2022-09-07 stsp [<code class="Fl">-P</code>] [<code class="Fl">-c</code>
2948 63657f42 2022-09-07 stsp <var class="Ar">commit</var>] [<code class="Fl">-r</code>
2949 63657f42 2022-09-07 stsp <var class="Ar">repository-path</var>] <var class="Ar">arg ...</var></dt>
2950 ba0a4168 2019-08-26 stsp <dd>Parse and print contents of objects to standard output in a line-based
2951 ba0a4168 2019-08-26 stsp text format. Content of commit, tree, and tag objects is printed in a way
2952 ba0a4168 2019-08-26 stsp similar to the actual content stored in such objects. Blob object contents
2953 ba0a4168 2019-08-26 stsp are printed as they would appear in files on disk.
2954 ba0a4168 2019-08-26 stsp <p class="Pp">Attempt to interpret each argument as a reference, a tag name,
2955 b183145b 2024-08-14 op or an object ID. References will be resolved to an object ID. Tag names
2956 b183145b 2024-08-14 op will resolved to a tag object. An abbreviated hash argument will be
2957 b183145b 2024-08-14 op expanded to a full commit ID automatically, provided the abbreviation is
2958 b183145b 2024-08-14 op unique.</p>
2959 ba0a4168 2019-08-26 stsp <p class="Pp">If none of the above interpretations produce a valid result,
2960 ba0a4168 2019-08-26 stsp or if the <code class="Fl">-P</code> option is used, attempt to
2961 ba0a4168 2019-08-26 stsp interpret the argument as a path which will be resolved to the ID of an
2962 ba0a4168 2019-08-26 stsp object found at this path in the repository.</p>
2963 f447d26b 2019-08-23 stsp <p class="Pp">The options for <code class="Cm">got cat</code> are as
2964 f447d26b 2019-08-23 stsp follows:</p>
2965 f447d26b 2019-08-23 stsp <dl class="Bl-tag">
2966 63657f42 2022-09-07 stsp <dt id="c~14"><a class="permalink" href="#c~14"><code class="Fl">-c</code></a>
2967 ba0a4168 2019-08-26 stsp <var class="Ar">commit</var></dt>
2968 ba0a4168 2019-08-26 stsp <dd>Look up paths in the specified <var class="Ar">commit</var>. If this
2969 ba0a4168 2019-08-26 stsp option is not used, paths are looked up in the commit resolved via the
2970 461d9094 2023-07-19 stsp repository's HEAD reference.
2971 b183145b 2024-08-14 op <p class="Pp" id="quux:-8">The expected argument is a commit ID, or a
2972 b183145b 2024-08-14 op reference name or keyword which will be resolved to a commit ID. An
2973 b183145b 2024-08-14 op abbreviated hash argument will be expanded to a full commit ID
2974 b183145b 2024-08-14 op automatically, provided the abbreviation is unique. The keywords
2975 b183145b 2024-08-14 op &quot;:base&quot; and &quot;:head&quot; resolve to the work tree's
2976 b183145b 2024-08-14 op base commit and branch head, respectively. The former is only valid
2977 b183145b 2024-08-14 op if invoked in a work tree, while the latter will resolve to the tip
2978 b183145b 2024-08-14 op of the work tree's current branch if invoked in a work tree,
2979 461d9094 2023-07-19 stsp otherwise it will resolve to the repository's HEAD reference.
2980 461d9094 2023-07-19 stsp Keywords and references may be appended with &quot;:+&quot; or
2981 461d9094 2023-07-19 stsp &quot;:-&quot; modifiers and an optional integer N to denote the Nth
2982 461d9094 2023-07-19 stsp descendant or antecedent by first parent traversal, respectively;
2983 461d9094 2023-07-19 stsp for example, <b class="Sy">:head:-2</b> denotes the work tree branch
2984 461d9094 2023-07-19 stsp head's 2nd generation ancestor, and <b class="Sy">:base:+4</b>
2985 461d9094 2023-07-19 stsp denotes the 4th generation descendant of the work tree's base
2986 461d9094 2023-07-19 stsp commit. Similarly,
2987 461d9094 2023-07-19 stsp <a class="permalink" href="#quux:-8"><b class="Sy">quux:-8</b></a>
2988 461d9094 2023-07-19 stsp will denote the 8th generation ancestor of the commit resolved by
2989 461d9094 2023-07-19 stsp the &quot;quux&quot; reference. A &quot;:+&quot; or &quot;:-&quot;
2990 461d9094 2023-07-19 stsp modifier without a trailing integer has an implicit &quot;1&quot;
2991 461d9094 2023-07-19 stsp appended (e.g., <b class="Sy">:base:+</b> is equivalent to
2992 461d9094 2023-07-19 stsp <b class="Sy">:base:+1</b>).</p>
2993 461d9094 2023-07-19 stsp </dd>
2994 63657f42 2022-09-07 stsp <dt id="P~3"><a class="permalink" href="#P~3"><code class="Fl">-P</code></a></dt>
2995 63657f42 2022-09-07 stsp <dd>Interpret all arguments as paths only. This option can be used to
2996 63657f42 2022-09-07 stsp resolve ambiguity in cases where paths look like tag names, reference
2997 63657f42 2022-09-07 stsp names, or object IDs.</dd>
2998 def5be4a 2021-08-31 stsp <dt id="r~11"><a class="permalink" href="#r~11"><code class="Fl">-r</code></a>
2999 f447d26b 2019-08-23 stsp <var class="Ar">repository-path</var></dt>
3000 f447d26b 2019-08-23 stsp <dd>Use the repository at the specified path. If not specified, assume the
3001 f447d26b 2019-08-23 stsp repository is located at or above the current working directory. If
3002 f447d26b 2019-08-23 stsp this directory is a <code class="Nm">got</code> work tree, use the
3003 f447d26b 2019-08-23 stsp repository path associated with this work tree.</dd>
3004 f447d26b 2019-08-23 stsp </dl>
3005 1554b334 2020-08-02 stsp </dd>
3006 1554b334 2020-08-02 stsp <dt id="info"><a class="permalink" href="#info"><code class="Cm">info</code></a>
3007 1554b334 2020-08-02 stsp [<var class="Ar">path ...</var>]</dt>
3008 1554b334 2020-08-02 stsp <dd>Display meta-data stored in a work tree. See
3009 376d4d52 2022-07-04 stsp <a class="Xr" aria-label="got-worktree, section 5">got-worktree(5)</a> for
3010 376d4d52 2022-07-04 stsp details.
3011 1554b334 2020-08-02 stsp <p class="Pp">The work tree to use is resolved implicitly by walking upwards
3012 1554b334 2020-08-02 stsp from the current working directory.</p>
3013 1554b334 2020-08-02 stsp <p class="Pp">If one or more <var class="Ar">path</var> arguments are
3014 1554b334 2020-08-02 stsp specified, show additional per-file information for tracked files
3015 1554b334 2020-08-02 stsp located at or within these paths. If a <var class="Ar">path</var>
3016 1554b334 2020-08-02 stsp argument corresponds to the work tree's root directory, display
3017 1554b334 2020-08-02 stsp information for all tracked files.</p>
3018 f447d26b 2019-08-23 stsp </dd>
3019 8797b228 2019-08-04 stsp </dl>
3020 8797b228 2019-08-04 stsp </section>
3021 8797b228 2019-08-04 stsp <section class="Sh">
3022 63657f42 2022-09-07 stsp <h2 class="Sh" id="ENVIRONMENT"><a class="permalink" href="#ENVIRONMENT">ENVIRONMENT</a></h2>
3023 8797b228 2019-08-04 stsp <dl class="Bl-tag">
3024 2dbbbc3a 2020-07-23 stsp <dt id="GOT_AUTHOR"><a class="permalink" href="#GOT_AUTHOR"><code class="Ev">GOT_AUTHOR</code></a></dt>
3025 865e5ba9 2024-02-13 stsp <dd>The author's name and email address, such as &quot;<span class="An">Flan
3026 63657f42 2022-09-07 stsp Hacker</span>
3027 865e5ba9 2024-02-13 stsp &lt;<a class="Mt" href="mailto:flan_hacker@openbsd.org">flan_hacker@openbsd.org</a>&gt;&quot;.
3028 63657f42 2022-09-07 stsp Used by the <code class="Cm">got commit</code>, <code class="Cm">got
3029 461d9094 2023-07-19 stsp import</code>, <code class="Cm">got rebase</code>, <code class="Cm">got
3030 461d9094 2023-07-19 stsp merge</code>, and <code class="Cm">got histedit</code> commands. Because
3031 63657f42 2022-09-07 stsp <a class="Xr" aria-label="git, section 1">git(1)</a> may fail to parse
3032 63657f42 2022-09-07 stsp commits without an email address in author data,
3033 376d4d52 2022-07-04 stsp <code class="Nm">got</code> attempts to reject
3034 376d4d52 2022-07-04 stsp <code class="Ev">GOT_AUTHOR</code> environment variables with a missing
3035 376d4d52 2022-07-04 stsp email address.
3036 def5be4a 2021-08-31 stsp <p class="Pp"><code class="Ev">GOT_AUTHOR will be overridden by
3037 376d4d52 2022-07-04 stsp configuration settings in</code> <a class="Xr" aria-label="got.conf,
3038 376d4d52 2022-07-04 stsp section 5">got.conf(5)</a> or by Git's <code class="Dv">user.name</code>
3039 376d4d52 2022-07-04 stsp and <code class="Dv">user.email</code> configuration settings in the
3040 def5be4a 2021-08-31 stsp repository's <span class="Pa">.git/config</span> file. The
3041 feee6923 2020-09-17 stsp <code class="Dv">user.name</code> and <code class="Dv">user.email</code>
3042 c2a52be5 2019-09-08 stsp configuration settings contained in Git's global
3043 feee6923 2020-09-17 stsp <span class="Pa">~/.gitconfig</span> configuration file will only be
3044 376d4d52 2022-07-04 stsp used if neither <a class="Xr" aria-label="got.conf, section
3045 376d4d52 2022-07-04 stsp 5">got.conf(5)</a> nor the <code class="Ev">GOT_AUTHOR</code>
3046 376d4d52 2022-07-04 stsp environment variable provide author information.</p>
3047 c2a52be5 2019-09-08 stsp </dd>
3048 47fa70d4 2023-01-23 stsp <dt id="GOT_IGNORE_GITCONFIG"><a class="permalink" href="#GOT_IGNORE_GITCONFIG"><code class="Ev">GOT_IGNORE_GITCONFIG</code></a></dt>
3049 47fa70d4 2023-01-23 stsp <dd>If this variable is set then any remote repository definitions or author
3050 47fa70d4 2023-01-23 stsp information found in Git configuration files will be ignored.</dd>
3051 47fa70d4 2023-01-23 stsp <dt id="GOT_LOG_DEFAULT_LIMIT"><a class="permalink" href="#GOT_LOG_DEFAULT_LIMIT"><code class="Ev">GOT_LOG_DEFAULT_LIMIT</code></a></dt>
3052 47fa70d4 2023-01-23 stsp <dd>The default limit on the number of commits traversed by
3053 47fa70d4 2023-01-23 stsp <code class="Cm">got log</code>. If set to zero, the limit is unbounded.
3054 47fa70d4 2023-01-23 stsp This variable will be silently ignored if it is set to a non-numeric
3055 47fa70d4 2023-01-23 stsp value.</dd>
3056 2dbbbc3a 2020-07-23 stsp <dt id="VISUAL"><a class="permalink" href="#VISUAL"><code class="Ev">VISUAL</code></a>,
3057 8797b228 2019-08-04 stsp <code class="Ev">EDITOR</code></dt>
3058 f447d26b 2019-08-23 stsp <dd>The editor spawned by <code class="Cm">got commit</code>,
3059 feee6923 2020-09-17 stsp <code class="Cm">got histedit</code>, <code class="Cm">got import</code>,
3060 feee6923 2020-09-17 stsp or <code class="Cm">got tag</code>. If not set, the
3061 297acb86 2023-03-07 stsp <a class="Xr" aria-label="vi, section 1">vi(1)</a> text editor will be
3062 297acb86 2023-03-07 stsp spawned.</dd>
3063 8797b228 2019-08-04 stsp </dl>
3064 8797b228 2019-08-04 stsp </section>
3065 8797b228 2019-08-04 stsp <section class="Sh">
3066 63657f42 2022-09-07 stsp <h2 class="Sh" id="FILES"><a class="permalink" href="#FILES">FILES</a></h2>
3067 feee6923 2020-09-17 stsp <dl class="Bl-tag Bl-compact">
3068 feee6923 2020-09-17 stsp <dt><span class="Pa">got.conf</span></dt>
3069 feee6923 2020-09-17 stsp <dd>Repository-wide configuration settings for <code class="Nm">got</code>. If
3070 376d4d52 2022-07-04 stsp present, a <a class="Xr" aria-label="got.conf, section 5">got.conf(5)</a>
3071 376d4d52 2022-07-04 stsp configuration file located in the root directory of a Git repository
3072 376d4d52 2022-07-04 stsp supersedes any relevant settings in Git's <span class="Pa">config</span>
3073 376d4d52 2022-07-04 stsp file.
3074 feee6923 2020-09-17 stsp <p class="Pp"></p>
3075 feee6923 2020-09-17 stsp </dd>
3076 feee6923 2020-09-17 stsp <dt><span class="Pa">.got/got.conf</span></dt>
3077 feee6923 2020-09-17 stsp <dd>Worktree-specific configuration settings for <code class="Nm">got</code>.
3078 376d4d52 2022-07-04 stsp If present, a <a class="Xr" aria-label="got.conf, section
3079 376d4d52 2022-07-04 stsp 5">got.conf(5)</a> configuration file in the <span class="Pa">.got</span>
3080 376d4d52 2022-07-04 stsp meta-data directory of a work tree supersedes any relevant settings in the
3081 376d4d52 2022-07-04 stsp repository's <a class="Xr" aria-label="got.conf, section
3082 376d4d52 2022-07-04 stsp 5">got.conf(5)</a> configuration file and Git's
3083 376d4d52 2022-07-04 stsp <span class="Pa">config</span> file.</dd>
3084 feee6923 2020-09-17 stsp </dl>
3085 feee6923 2020-09-17 stsp </section>
3086 feee6923 2020-09-17 stsp <section class="Sh">
3087 63657f42 2022-09-07 stsp <h2 class="Sh" id="EXIT_STATUS"><a class="permalink" href="#EXIT_STATUS">EXIT
3088 63657f42 2022-09-07 stsp STATUS</a></h2>
3089 d8e62599 2019-10-21 stsp <p class="Pp">The <code class="Nm">got</code> utility exits&#x00A0;0 on success,
3090 d8e62599 2019-10-21 stsp and&#x00A0;&gt;0 if an error occurs.</p>
3091 8797b228 2019-08-04 stsp </section>
3092 8797b228 2019-08-04 stsp <section class="Sh">
3093 63657f42 2022-09-07 stsp <h2 class="Sh" id="EXAMPLES"><a class="permalink" href="#EXAMPLES">EXAMPLES</a></h2>
3094 def5be4a 2021-08-31 stsp <p class="Pp">Enable tab-completion of <code class="Nm">got</code> command names
3095 376d4d52 2022-07-04 stsp in <a class="Xr" aria-label="ksh, section 1">ksh(1)</a>:</p>
3096 def5be4a 2021-08-31 stsp <p class="Pp"></p>
3097 1e80276a 2021-09-03 stsp <div class="Bd Bd-indent"><code class="Li">$ set -A complete_got_1 -- $(got -h
3098 def5be4a 2021-08-31 stsp 2&gt;&amp;1 | sed -n s/commands://p)</code></div>
3099 d8e62599 2019-10-21 stsp <p class="Pp">Clone an existing Git repository for use with
3100 41ae98c9 2023-06-23 stsp <code class="Nm">got</code>:</p>
3101 8797b228 2019-08-04 stsp <p class="Pp"></p>
3102 8797b228 2019-08-04 stsp <div class="Bd Bd-indent"><code class="Li">$ cd /var/git/</code></div>
3103 b213cbf7 2020-03-23 stsp <div class="Bd Bd-indent"><code class="Li">$ got clone
3104 b213cbf7 2020-03-23 stsp ssh://git@github.com/openbsd/src.git</code></div>
3105 41ae98c9 2023-06-23 stsp <p class="Pp">Unfortunately, many of the popular Git hosting sites do not offer
3106 41ae98c9 2023-06-23 stsp anonymous access via SSH. Such sites will require an account to be created,
3107 41ae98c9 2023-06-23 stsp and a public SSH key to be uploaded to this account, before repository
3108 41ae98c9 2023-06-23 stsp access via ssh:// URLs will work.</p>
3109 bd0bf387 2024-04-23 stsp <p class="Pp">Most sites offer anonymous repository access via HTTPS:</p>
3110 b213cbf7 2020-03-23 stsp <p class="Pp"></p>
3111 b213cbf7 2020-03-23 stsp <div class="Bd Bd-indent"><code class="Li">$ cd /var/git/</code></div>
3112 bd0bf387 2024-04-23 stsp <div class="Bd Bd-indent"><code class="Li">$ got clone
3113 8797b228 2019-08-04 stsp https://github.com/openbsd/src.git</code></div>
3114 8797b228 2019-08-04 stsp <p class="Pp">Alternatively, for quick and dirty local testing of
3115 8797b228 2019-08-04 stsp <code class="Nm">got</code> a new Git repository could be created and
3116 8797b228 2019-08-04 stsp populated with files, e.g. from a temporary CVS checkout located at
3117 8797b228 2019-08-04 stsp <span class="Pa">/tmp/src</span>:</p>
3118 8797b228 2019-08-04 stsp <p class="Pp"></p>
3119 56f3f26e 2024-06-03 stsp <div class="Bd Bd-indent"><code class="Li">$ got init
3120 8797b228 2019-08-04 stsp /var/git/src.git</code></div>
3121 8797b228 2019-08-04 stsp <div class="Bd Bd-indent"><code class="Li">$ got import -r /var/git/src.git -I
3122 8797b228 2019-08-04 stsp CVS -I obj /tmp/src</code></div>
3123 8797b228 2019-08-04 stsp <p class="Pp">Check out a work tree from the Git repository to /usr/src:</p>
3124 8797b228 2019-08-04 stsp <p class="Pp"></p>
3125 8797b228 2019-08-04 stsp <div class="Bd Bd-indent"><code class="Li">$ got checkout /var/git/src.git
3126 8797b228 2019-08-04 stsp /usr/src</code></div>
3127 8797b228 2019-08-04 stsp <p class="Pp">View local changes in a work tree directory:</p>
3128 8797b228 2019-08-04 stsp <p class="Pp"></p>
3129 8797b228 2019-08-04 stsp <div class="Bd Bd-indent"><code class="Li">$ got diff | less</code></div>
3130 feee6923 2020-09-17 stsp <p class="Pp">In a work tree, display files in a potentially problematic
3131 feee6923 2020-09-17 stsp state:</p>
3132 feee6923 2020-09-17 stsp <p class="Pp"></p>
3133 feee6923 2020-09-17 stsp <div class="Bd Bd-indent"><code class="Li">$ got status -s 'C!~?'</code></div>
3134 7da3b7f6 2019-08-08 stsp <p class="Pp">Interactively revert selected local changes in a work tree
3135 7da3b7f6 2019-08-08 stsp directory:</p>
3136 7da3b7f6 2019-08-08 stsp <p class="Pp"></p>
3137 7da3b7f6 2019-08-08 stsp <div class="Bd Bd-indent"><code class="Li">$ got revert -p
3138 7da3b7f6 2019-08-08 stsp -R&#x00A0;.</code></div>
3139 8797b228 2019-08-04 stsp <p class="Pp">In a work tree or a git repository directory, list all branch
3140 8797b228 2019-08-04 stsp references:</p>
3141 8797b228 2019-08-04 stsp <p class="Pp"></p>
3142 8797b228 2019-08-04 stsp <div class="Bd Bd-indent"><code class="Li">$ got branch -l</code></div>
3143 47f19dd5 2023-01-17 stsp <p class="Pp">As above, but list the most recently modified branches only:</p>
3144 47f19dd5 2023-01-17 stsp <p class="Pp"></p>
3145 47f19dd5 2023-01-17 stsp <div class="Bd Bd-indent"><code class="Li">$ got branch -lt | head</code></div>
3146 8797b228 2019-08-04 stsp <p class="Pp">In a work tree or a git repository directory, create a new branch
3147 8797b228 2019-08-04 stsp called &#x201C;unified-buffer-cache&#x201D; which is forked off the
3148 8797b228 2019-08-04 stsp &#x201C;master&#x201D; branch:</p>
3149 8797b228 2019-08-04 stsp <p class="Pp"></p>
3150 039953c9 2021-03-22 stsp <div class="Bd Bd-indent"><code class="Li">$ got branch -c master
3151 039953c9 2021-03-22 stsp unified-buffer-cache</code></div>
3152 8797b228 2019-08-04 stsp <p class="Pp">Switch an existing work tree to the branch
3153 8797b228 2019-08-04 stsp &#x201C;unified-buffer-cache&#x201D;. Local changes in the work tree will be
3154 8797b228 2019-08-04 stsp preserved and merged if necessary:</p>
3155 8797b228 2019-08-04 stsp <p class="Pp"></p>
3156 8797b228 2019-08-04 stsp <div class="Bd Bd-indent"><code class="Li">$ got update -b
3157 8797b228 2019-08-04 stsp unified-buffer-cache</code></div>
3158 8797b228 2019-08-04 stsp <p class="Pp">Create a new commit from local changes in a work tree directory.
3159 8797b228 2019-08-04 stsp This new commit will become the head commit of the work tree's current
3160 8797b228 2019-08-04 stsp branch:</p>
3161 8797b228 2019-08-04 stsp <p class="Pp"></p>
3162 8797b228 2019-08-04 stsp <div class="Bd Bd-indent"><code class="Li">$ got commit</code></div>
3163 8797b228 2019-08-04 stsp <p class="Pp">In a work tree or a git repository directory, view changes
3164 8797b228 2019-08-04 stsp committed in the 3 most recent commits to the work tree's branch, or the
3165 8797b228 2019-08-04 stsp branch resolved via the repository's HEAD reference, respectively:</p>
3166 8797b228 2019-08-04 stsp <p class="Pp"></p>
3167 8b679b4b 2020-02-17 stsp <div class="Bd Bd-indent"><code class="Li">$ got log -p -l 3</code></div>
3168 a462773e 2020-04-19 stsp <p class="Pp">As above, but display changes in the order in which
3169 376d4d52 2022-07-04 stsp <a class="Xr" aria-label="patch, section 1">patch(1)</a> could apply them in
3170 376d4d52 2022-07-04 stsp sequence:</p>
3171 a462773e 2020-04-19 stsp <p class="Pp"></p>
3172 a462773e 2020-04-19 stsp <div class="Bd Bd-indent"><code class="Li">$ got log -p -l 3 -R</code></div>
3173 7c3b4ab8 2020-02-25 stsp <p class="Pp">In a work tree or a git repository directory, log the history of a
3174 7c3b4ab8 2020-02-25 stsp subdirectory:</p>
3175 7c3b4ab8 2020-02-25 stsp <p class="Pp"></p>
3176 7c3b4ab8 2020-02-25 stsp <div class="Bd Bd-indent"><code class="Li">$ got log sys/uvm</code></div>
3177 7c3b4ab8 2020-02-25 stsp <p class="Pp">While operating inside a work tree, paths are specified relative
3178 7c3b4ab8 2020-02-25 stsp to the current working directory, so this command will log the subdirectory
3179 7c3b4ab8 2020-02-25 stsp <span class="Pa">sys/uvm</span>:</p>
3180 7c3b4ab8 2020-02-25 stsp <p class="Pp"></p>
3181 1554b334 2020-08-02 stsp <div class="Bd Bd-indent"><code class="Li">$ cd sys/uvm &amp;&amp; got
3182 1554b334 2020-08-02 stsp log&#x00A0;.</code></div>
3183 7c3b4ab8 2020-02-25 stsp <p class="Pp">And this command has the same effect:</p>
3184 7c3b4ab8 2020-02-25 stsp <p class="Pp"></p>
3185 7c3b4ab8 2020-02-25 stsp <div class="Bd Bd-indent"><code class="Li">$ cd sys/dev/usb &amp;&amp; got log
3186 7c3b4ab8 2020-02-25 stsp ../../uvm</code></div>
3187 1554b334 2020-08-02 stsp <p class="Pp">And this command displays work tree meta-data about all tracked
3188 1554b334 2020-08-02 stsp files:</p>
3189 1554b334 2020-08-02 stsp <p class="Pp"></p>
3190 1554b334 2020-08-02 stsp <div class="Bd Bd-indent"><code class="Li">$ cd /usr/src</code></div>
3191 1554b334 2020-08-02 stsp <div class="Bd Bd-indent"><code class="Li">$ got info&#x00A0;. |
3192 1554b334 2020-08-02 stsp less</code></div>
3193 8797b228 2019-08-04 stsp <p class="Pp">Add new files and remove obsolete files in a work tree
3194 8797b228 2019-08-04 stsp directory:</p>
3195 8797b228 2019-08-04 stsp <p class="Pp"></p>
3196 8797b228 2019-08-04 stsp <div class="Bd Bd-indent"><code class="Li">$ got add
3197 8797b228 2019-08-04 stsp sys/uvm/uvm_ubc.c</code></div>
3198 8797b228 2019-08-04 stsp <div class="Bd Bd-indent"><code class="Li">$ got remove
3199 8797b228 2019-08-04 stsp sys/uvm/uvm_vnode.c</code></div>
3200 dfc34448 2024-05-06 stsp <p class="Pp">A file can be renamed or moved by removing it from its old
3201 dfc34448 2024-05-06 stsp location and adding it at the new location:</p>
3202 dfc34448 2024-05-06 stsp <p class="Pp"></p>
3203 dfc34448 2024-05-06 stsp <div class="Bd Bd-indent"><code class="Li">$ cp oldfile.c newfile.c</code></div>
3204 dfc34448 2024-05-06 stsp <div class="Bd Bd-indent"><code class="Li">$ got remove oldfile.c</code></div>
3205 dfc34448 2024-05-06 stsp <div class="Bd Bd-indent"><code class="Li">$ got add newfile.c</code></div>
3206 dfc34448 2024-05-06 stsp <p class="Pp"><code class="Nm">got</code> does not yet follow file history
3207 dfc34448 2024-05-06 stsp across renames, but <a class="Xr" aria-label="git, section 1">git(1)</a>
3208 dfc34448 2024-05-06 stsp will be able to do so regardless.</p>
3209 8797b228 2019-08-04 stsp <p class="Pp">Create a new commit from local changes in a work tree directory
3210 8797b228 2019-08-04 stsp with a pre-defined log message.</p>
3211 8797b228 2019-08-04 stsp <p class="Pp"></p>
3212 8797b228 2019-08-04 stsp <div class="Bd Bd-indent"><code class="Li">$ got commit -m 'unify the buffer
3213 8797b228 2019-08-04 stsp cache'</code></div>
3214 2dbbbc3a 2020-07-23 stsp <p class="Pp">Alternatively, create a new commit from local changes in a work
3215 2dbbbc3a 2020-07-23 stsp tree directory with a log message that has been prepared in the file
3216 56dd4d48 2021-04-05 stsp <span class="Pa">/tmp/msg</span>:</p>
3217 2dbbbc3a 2020-07-23 stsp <p class="Pp"></p>
3218 039953c9 2021-03-22 stsp <div class="Bd Bd-indent"><code class="Li">$ got commit -F /tmp/msg</code></div>
3219 8797b228 2019-08-04 stsp <p class="Pp">Update any work tree checked out from the
3220 8797b228 2019-08-04 stsp &#x201C;unified-buffer-cache&#x201D; branch to the latest commit on this
3221 8797b228 2019-08-04 stsp branch:</p>
3222 8797b228 2019-08-04 stsp <p class="Pp"></p>
3223 8797b228 2019-08-04 stsp <div class="Bd Bd-indent"><code class="Li">$ got update</code></div>
3224 8797b228 2019-08-04 stsp <p class="Pp">Roll file content on the unified-buffer-cache branch back by one
3225 8797b228 2019-08-04 stsp commit, and then fetch the rolled-back change into the work tree as a local
3226 8797b228 2019-08-04 stsp change to be amended and perhaps committed again:</p>
3227 8797b228 2019-08-04 stsp <p class="Pp"></p>
3228 8797b228 2019-08-04 stsp <div class="Bd Bd-indent"><code class="Li">$ got backout
3229 8797b228 2019-08-04 stsp unified-buffer-cache</code></div>
3230 8797b228 2019-08-04 stsp <div class="Bd Bd-indent"><code class="Li">$ got commit -m 'roll back
3231 8797b228 2019-08-04 stsp previous'</code></div>
3232 8797b228 2019-08-04 stsp <div class="Bd Bd-indent"><code class="Li">$ # now back out the previous backout
3233 8797b228 2019-08-04 stsp :-)</code></div>
3234 8797b228 2019-08-04 stsp <div class="Bd Bd-indent"><code class="Li">$ got backout
3235 8797b228 2019-08-04 stsp unified-buffer-cache</code></div>
3236 def5be4a 2021-08-31 stsp <p class="Pp">Fetch new changes on the remote repository's
3237 def5be4a 2021-08-31 stsp &#x201C;master&#x201D; branch, making them visible on the local repository's
3238 b213cbf7 2020-03-23 stsp &#x201C;origin/master&#x201D; branch:</p>
3239 8797b228 2019-08-04 stsp <p class="Pp"></p>
3240 b213cbf7 2020-03-23 stsp <div class="Bd Bd-indent"><code class="Li">$ cd /usr/src</code></div>
3241 b213cbf7 2020-03-23 stsp <div class="Bd Bd-indent"><code class="Li">$ got fetch</code></div>
3242 b213cbf7 2020-03-23 stsp <p class="Pp">Rebase the local &#x201C;master&#x201D; branch to merge the new
3243 b213cbf7 2020-03-23 stsp changes that are now visible on the &#x201C;origin/master&#x201D;
3244 b213cbf7 2020-03-23 stsp branch:</p>
3245 b213cbf7 2020-03-23 stsp <p class="Pp"></p>
3246 b213cbf7 2020-03-23 stsp <div class="Bd Bd-indent"><code class="Li">$ cd /usr/src</code></div>
3247 b213cbf7 2020-03-23 stsp <div class="Bd Bd-indent"><code class="Li">$ got update -b
3248 b213cbf7 2020-03-23 stsp origin/master</code></div>
3249 b213cbf7 2020-03-23 stsp <div class="Bd Bd-indent"><code class="Li">$ got rebase master</code></div>
3250 8797b228 2019-08-04 stsp <p class="Pp">Rebase the &#x201C;unified-buffer-cache&#x201D; branch on top of
3251 8797b228 2019-08-04 stsp the new head commit of the &#x201C;master&#x201D; branch.</p>
3252 8797b228 2019-08-04 stsp <p class="Pp"></p>
3253 8797b228 2019-08-04 stsp <div class="Bd Bd-indent"><code class="Li">$ got update -b master</code></div>
3254 8797b228 2019-08-04 stsp <div class="Bd Bd-indent"><code class="Li">$ got rebase
3255 8797b228 2019-08-04 stsp unified-buffer-cache</code></div>
3256 8797b228 2019-08-04 stsp <p class="Pp">Create a patch from all changes on the unified-buffer-cache
3257 4967d3c2 2019-08-12 stsp branch. The patch can be mailed out for review and applied to
3258 4967d3c2 2019-08-12 stsp <span class="Ux">OpenBSD</span>'s CVS tree:</p>
3259 8797b228 2019-08-04 stsp <p class="Pp"></p>
3260 8797b228 2019-08-04 stsp <div class="Bd Bd-indent"><code class="Li">$ got diff master
3261 8797b228 2019-08-04 stsp unified-buffer-cache &gt; /tmp/ubc.diff</code></div>
3262 8797b228 2019-08-04 stsp <p class="Pp">Edit the entire commit history of the
3263 8797b228 2019-08-04 stsp &#x201C;unified-buffer-cache&#x201D; branch:</p>
3264 8797b228 2019-08-04 stsp <p class="Pp"></p>
3265 8797b228 2019-08-04 stsp <div class="Bd Bd-indent"><code class="Li">$ got update -b
3266 8797b228 2019-08-04 stsp unified-buffer-cache</code></div>
3267 8797b228 2019-08-04 stsp <div class="Bd Bd-indent"><code class="Li">$ got update -c master</code></div>
3268 8797b228 2019-08-04 stsp <div class="Bd Bd-indent"><code class="Li">$ got histedit</code></div>
3269 def5be4a 2021-08-31 stsp <p class="Pp">Before working against existing branches in a repository cloned
3270 def5be4a 2021-08-31 stsp with <code class="Cm">git clone --bare</code> instead of
3271 def5be4a 2021-08-31 stsp <code class="Cm">got clone</code>, a Git &#x201C;refspec&#x201D; must be
3272 b213cbf7 2020-03-23 stsp configured to map all references in the remote repository into the
3273 56dd4d48 2021-04-05 stsp &#x201C;refs/remotes&#x201D; namespace of the local repository. This can be
3274 b213cbf7 2020-03-23 stsp achieved by setting Git's <span class="Pa">remote.origin.fetch</span>
3275 b213cbf7 2020-03-23 stsp configuration variable to the value
3276 b213cbf7 2020-03-23 stsp &#x201C;+refs/heads/*:refs/remotes/origin/*&#x201D; with the
3277 8797b228 2019-08-04 stsp <code class="Cm">git config</code> command:</p>
3278 8797b228 2019-08-04 stsp <p class="Pp"></p>
3279 8797b228 2019-08-04 stsp <div class="Bd Bd-indent"><code class="Li">$ cd /var/git/repo</code></div>
3280 8797b228 2019-08-04 stsp <div class="Bd Bd-indent"><code class="Li">$ git config remote.origin.fetch
3281 8797b228 2019-08-04 stsp '+refs/heads/*:refs/remotes/origin/*'</code></div>
3282 b213cbf7 2020-03-23 stsp <p class="Pp">Additionally, the &#x201C;mirror&#x201D; option must be
3283 b213cbf7 2020-03-23 stsp disabled:</p>
3284 b213cbf7 2020-03-23 stsp <p class="Pp"></p>
3285 b213cbf7 2020-03-23 stsp <div class="Bd Bd-indent"><code class="Li">$ cd /var/git/repo</code></div>
3286 b213cbf7 2020-03-23 stsp <div class="Bd Bd-indent"><code class="Li">$ git config remote.origin.mirror
3287 b213cbf7 2020-03-23 stsp false</code></div>
3288 376d4d52 2022-07-04 stsp <p class="Pp">Alternatively, the following <a class="Xr" aria-label="git-fetch,
3289 376d4d52 2022-07-04 stsp section 1">git-fetch(1)</a> configuration item can be added manually to the
3290 376d4d52 2022-07-04 stsp Git repository's <span class="Pa">config</span> file:</p>
3291 8797b228 2019-08-04 stsp <p class="Pp"></p>
3292 a954aa0a 2021-06-22 stsp <div class="Bd Bd-indent"><code class="Li">[remote
3293 a954aa0a 2021-06-22 stsp &quot;origin&quot;]</code></div>
3294 8797b228 2019-08-04 stsp <div class="Bd Bd-indent"><code class="Li">url = ...</code></div>
3295 8797b228 2019-08-04 stsp <div class="Bd Bd-indent"><code class="Li">fetch =
3296 8797b228 2019-08-04 stsp +refs/heads/*:refs/remotes/origin/*</code></div>
3297 b213cbf7 2020-03-23 stsp <div class="Bd Bd-indent"><code class="Li">mirror = false</code></div>
3298 8797b228 2019-08-04 stsp <p class="Pp">This configuration leaves the local repository's
3299 8797b228 2019-08-04 stsp &#x201C;refs/heads&#x201D; namespace free for use by local branches checked
3300 8797b228 2019-08-04 stsp out with <code class="Cm">got checkout</code> and, if needed, created with
3301 def5be4a 2021-08-31 stsp <code class="Cm">got branch</code>. Branches in the
3302 def5be4a 2021-08-31 stsp &#x201C;refs/remotes/origin&#x201D; namespace can now be updated with
3303 def5be4a 2021-08-31 stsp incoming changes from the remote repository with <code class="Cm">got
3304 376d4d52 2022-07-04 stsp fetch</code> or <a class="Xr" aria-label="git-fetch, section
3305 376d4d52 2022-07-04 stsp 1">git-fetch(1)</a> without extra command line arguments. Newly fetched
3306 376d4d52 2022-07-04 stsp changes can be examined with <code class="Cm">got log</code>.</p>
3307 def5be4a 2021-08-31 stsp <p class="Pp">Display changes on the remote repository's version of the
3308 def5be4a 2021-08-31 stsp &#x201C;master&#x201D; branch, as of the last time <code class="Cm">got
3309 def5be4a 2021-08-31 stsp fetch</code> was run:</p>
3310 8797b228 2019-08-04 stsp <p class="Pp"></p>
3311 def5be4a 2021-08-31 stsp <div class="Bd Bd-indent"><code class="Li">$ got log -c origin/master |
3312 def5be4a 2021-08-31 stsp less</code></div>
3313 def5be4a 2021-08-31 stsp <p class="Pp">As shown here, most commands accept abbreviated reference names
3314 def5be4a 2021-08-31 stsp such as &#x201C;origin/master&#x201D; instead of
3315 def5be4a 2021-08-31 stsp &#x201C;refs/remotes/origin/master&#x201D;. The latter is only needed in
3316 def5be4a 2021-08-31 stsp case of ambiguity.</p>
3317 41ae98c9 2023-06-23 stsp <p class="Pp"><code class="Cm">got rebase</code> can be used to merge changes
3318 def5be4a 2021-08-31 stsp which are visible on the &#x201C;origin/master&#x201D; branch into the
3319 def5be4a 2021-08-31 stsp &#x201C;master&#x201D; branch. This will also merge local changes, if any,
3320 def5be4a 2021-08-31 stsp with the incoming changes:</p>
3321 8797b228 2019-08-04 stsp <p class="Pp"></p>
3322 8797b228 2019-08-04 stsp <div class="Bd Bd-indent"><code class="Li">$ got update -b
3323 8797b228 2019-08-04 stsp origin/master</code></div>
3324 8797b228 2019-08-04 stsp <div class="Bd Bd-indent"><code class="Li">$ got rebase master</code></div>
3325 def5be4a 2021-08-31 stsp <p class="Pp">In order to make changes committed to the
3326 def5be4a 2021-08-31 stsp &#x201C;unified-buffer-cache&#x201D; visible on the &#x201C;master&#x201D;
3327 41ae98c9 2023-06-23 stsp branch, the &#x201C;unified-buffer-cache&#x201D; branch can be rebased onto
3328 41ae98c9 2023-06-23 stsp the &#x201C;master&#x201D; branch:</p>
3329 def5be4a 2021-08-31 stsp <p class="Pp"></p>
3330 def5be4a 2021-08-31 stsp <div class="Bd Bd-indent"><code class="Li">$ got update -b master</code></div>
3331 def5be4a 2021-08-31 stsp <div class="Bd Bd-indent"><code class="Li">$ got rebase
3332 def5be4a 2021-08-31 stsp unified-buffer-cache</code></div>
3333 def5be4a 2021-08-31 stsp <p class="Pp">Changes on the &#x201C;unified-buffer-cache&#x201D; branch can now
3334 def5be4a 2021-08-31 stsp be made visible on the &#x201C;master&#x201D; branch with
3335 def5be4a 2021-08-31 stsp <code class="Cm">got integrate</code>. Because the rebase operation switched
3336 b078d5c4 2022-03-23 stsp the work tree to the &#x201C;unified-buffer-cache&#x201D; branch, the work
3337 def5be4a 2021-08-31 stsp tree must be switched back to the &#x201C;master&#x201D; branch first:</p>
3338 def5be4a 2021-08-31 stsp <p class="Pp"></p>
3339 def5be4a 2021-08-31 stsp <div class="Bd Bd-indent"><code class="Li">$ got update -b master</code></div>
3340 def5be4a 2021-08-31 stsp <div class="Bd Bd-indent"><code class="Li">$ got integrate
3341 def5be4a 2021-08-31 stsp unified-buffer-cache</code></div>
3342 7c3b4ab8 2020-02-25 stsp <p class="Pp">On the &#x201C;master&#x201D; branch, log messages for local
3343 7c3b4ab8 2020-02-25 stsp changes can now be amended with &#x201C;OK&#x201D; by other developers and
3344 7c3b4ab8 2020-02-25 stsp any other important new information:</p>
3345 7c3b4ab8 2020-02-25 stsp <p class="Pp"></p>
3346 7c3b4ab8 2020-02-25 stsp <div class="Bd Bd-indent"><code class="Li">$ got update -c
3347 7c3b4ab8 2020-02-25 stsp origin/master</code></div>
3348 7c3b4ab8 2020-02-25 stsp <div class="Bd Bd-indent"><code class="Li">$ got histedit -m</code></div>
3349 b078d5c4 2022-03-23 stsp <p class="Pp">If the remote repository offers write access, local changes on the
3350 def5be4a 2021-08-31 stsp &#x201C;master&#x201D; branch can be sent to the remote repository with
3351 63b69821 2021-10-16 stsp <code class="Cm">got send</code>. Usually, <code class="Cm">got send</code>
3352 def5be4a 2021-08-31 stsp can be run without further arguments. The arguments shown here match
3353 def5be4a 2021-08-31 stsp defaults, provided the work tree's current branch is the
3354 def5be4a 2021-08-31 stsp &#x201C;master&#x201D; branch:</p>
3355 8797b228 2019-08-04 stsp <p class="Pp"></p>
3356 def5be4a 2021-08-31 stsp <div class="Bd Bd-indent"><code class="Li">$ got send -b master
3357 def5be4a 2021-08-31 stsp origin</code></div>
3358 b078d5c4 2022-03-23 stsp <p class="Pp">If the remote repository requires the HTTPS protocol, the
3359 376d4d52 2022-07-04 stsp <a class="Xr" aria-label="git-push, section 1">git-push(1)</a> command must
3360 376d4d52 2022-07-04 stsp be used instead:</p>
3361 def5be4a 2021-08-31 stsp <p class="Pp"></p>
3362 def5be4a 2021-08-31 stsp <div class="Bd Bd-indent"><code class="Li">$ cd /var/git/src.git</code></div>
3363 8797b228 2019-08-04 stsp <div class="Bd Bd-indent"><code class="Li">$ git push origin master</code></div>
3364 63657f42 2022-09-07 stsp <p class="Pp">When making contributions to projects which use the &#x201C;pull
3365 63657f42 2022-09-07 stsp request&#x201D; workflow, SSH protocol repository access needs to be set up
3366 63657f42 2022-09-07 stsp first. Once an account has been created on a Git hosting site it should be
3367 63657f42 2022-09-07 stsp possible to upload a public SSH key for repository access
3368 63657f42 2022-09-07 stsp authentication.</p>
3369 63657f42 2022-09-07 stsp <p class="Pp">The &#x201C;pull request&#x201D; workflow will usually involve two
3370 63657f42 2022-09-07 stsp remote repositories. In the real-life example below, the
3371 63657f42 2022-09-07 stsp &#x201C;origin&#x201D; repository was forked from the
3372 63657f42 2022-09-07 stsp &#x201C;upstream&#x201D; repository by using the Git hosting site's web
3373 63657f42 2022-09-07 stsp interface. The <a class="Xr" aria-label="got.conf, section
3374 63657f42 2022-09-07 stsp 5">got.conf(5)</a> file in the local repository describes both remote
3375 63657f42 2022-09-07 stsp repositories:</p>
3376 63657f42 2022-09-07 stsp <div class="Bd Pp Bd-indent Li">
3377 63657f42 2022-09-07 stsp <pre># Jelmers's repository, which accepts pull requests
3378 63657f42 2022-09-07 stsp remote &quot;upstream&quot; {
3379 63657f42 2022-09-07 stsp server git@github.com
3380 63657f42 2022-09-07 stsp protocol ssh
3381 63657f42 2022-09-07 stsp repository &quot;/jelmer/dulwich&quot;
3382 63657f42 2022-09-07 stsp branch { &quot;master&quot; }
3383 63657f42 2022-09-07 stsp }
3384 63657f42 2022-09-07 stsp
3385 63657f42 2022-09-07 stsp # Stefan's fork, used as the default remote repository
3386 63657f42 2022-09-07 stsp remote &quot;origin&quot; {
3387 63657f42 2022-09-07 stsp server git@github.com
3388 63657f42 2022-09-07 stsp protocol ssh
3389 63657f42 2022-09-07 stsp repository &quot;/stspdotname/dulwich&quot;
3390 63657f42 2022-09-07 stsp branch { &quot;master&quot; }
3391 63657f42 2022-09-07 stsp }</pre>
3392 63657f42 2022-09-07 stsp </div>
3393 63657f42 2022-09-07 stsp <p class="Pp">With this configuration, Stefan can create commits on
3394 63657f42 2022-09-07 stsp &#x201C;refs/heads/master&#x201D; and send them to the
3395 63657f42 2022-09-07 stsp &#x201C;origin&#x201D; repository by running:</p>
3396 63657f42 2022-09-07 stsp <p class="Pp"></p>
3397 63657f42 2022-09-07 stsp <div class="Bd Bd-indent"><code class="Li">$ got send -b master
3398 63657f42 2022-09-07 stsp origin</code></div>
3399 63657f42 2022-09-07 stsp <p class="Pp">The changes can now be proposed to Jelmer by opening a pull
3400 63657f42 2022-09-07 stsp request via the Git hosting site's web interface. If Jelmer requests further
3401 63657f42 2022-09-07 stsp changes to be made, additional commits can be created on the
3402 63657f42 2022-09-07 stsp &#x201C;master&#x201D; branch and be added to the pull request by running
3403 63657f42 2022-09-07 stsp <code class="Cd">got send</code> again.</p>
3404 63657f42 2022-09-07 stsp <p class="Pp">If Jelmer prefers additional commits to be
3405 63657f42 2022-09-07 stsp &#x201C;squashed&#x201D; then the following commands can be used to achieve
3406 63657f42 2022-09-07 stsp this:</p>
3407 63657f42 2022-09-07 stsp <p class="Pp"></p>
3408 63657f42 2022-09-07 stsp <div class="Bd Bd-indent"><code class="Li">$ got update -b master</code></div>
3409 63657f42 2022-09-07 stsp <div class="Bd Bd-indent"><code class="Li">$ got update -c
3410 63657f42 2022-09-07 stsp origin/master</code></div>
3411 63657f42 2022-09-07 stsp <div class="Bd Bd-indent"><code class="Li">$ got histedit -f</code></div>
3412 63657f42 2022-09-07 stsp <div class="Bd Bd-indent"><code class="Li">$ got send -f -b master
3413 e68eaba8 2023-04-20 stsp origin</code></div>
3414 e68eaba8 2023-04-20 stsp <p class="Pp">In addition to reviewing the pull request in the web user
3415 e68eaba8 2023-04-20 stsp interface, Jelmer can fetch the pull request's branch into his local
3416 e68eaba8 2023-04-20 stsp repository and create a local branch which contains the proposed
3417 e68eaba8 2023-04-20 stsp changes:</p>
3418 e68eaba8 2023-04-20 stsp <p class="Pp"></p>
3419 e68eaba8 2023-04-20 stsp <div class="Bd Bd-indent"><code class="Li">$ got fetch -R refs/pull/1046/head
3420 63657f42 2022-09-07 stsp origin</code></div>
3421 e68eaba8 2023-04-20 stsp <div class="Bd Bd-indent"><code class="Li">$ got branch -c
3422 e68eaba8 2023-04-20 stsp refs/remotes/origin/pull/1046/head pr1046</code></div>
3423 63657f42 2022-09-07 stsp <p class="Pp">Once Jelmer has accepted the pull request, Stefan can fetch the
3424 63657f42 2022-09-07 stsp merged changes, and possibly several other new changes, by running:</p>
3425 63657f42 2022-09-07 stsp <p class="Pp"></p>
3426 63657f42 2022-09-07 stsp <div class="Bd Bd-indent"><code class="Li">$ got fetch upstream</code></div>
3427 63657f42 2022-09-07 stsp <p class="Pp">The merged changes will now be visible under the reference
3428 63657f42 2022-09-07 stsp &#x201C;refs/remotes/upstream/master&#x201D;. The local
3429 63657f42 2022-09-07 stsp &#x201C;master&#x201D; branch can now be rebased on top of the latest
3430 63657f42 2022-09-07 stsp changes from upstream:</p>
3431 63657f42 2022-09-07 stsp <p class="Pp"></p>
3432 63657f42 2022-09-07 stsp <div class="Bd Bd-indent"><code class="Li">$ got update -b
3433 63657f42 2022-09-07 stsp upstream/master</code></div>
3434 63657f42 2022-09-07 stsp <div class="Bd Bd-indent"><code class="Li">$ got rebase master</code></div>
3435 41ae98c9 2023-06-23 stsp <p class="Pp">As an alternative to <code class="Cm">got rebase</code>, branches
3436 41ae98c9 2023-06-23 stsp can be merged with <code class="Cm">got merge</code>:</p>
3437 41ae98c9 2023-06-23 stsp <p class="Pp"></p>
3438 41ae98c9 2023-06-23 stsp <div class="Bd Bd-indent"><code class="Li">$ got update -b master</code></div>
3439 41ae98c9 2023-06-23 stsp <div class="Bd Bd-indent"><code class="Li">$ got merge
3440 41ae98c9 2023-06-23 stsp upstream/master</code></div>
3441 41ae98c9 2023-06-23 stsp <p class="Pp">The question of whether to rebase or merge branches is
3442 41ae98c9 2023-06-23 stsp philosophical. When in doubt, refer to the software project's policies set
3443 41ae98c9 2023-06-23 stsp by project maintainers.</p>
3444 63657f42 2022-09-07 stsp <p class="Pp">As a final step, the forked repository's copy of the master branch
3445 63657f42 2022-09-07 stsp needs to be kept in sync by sending the new changes there:</p>
3446 63657f42 2022-09-07 stsp <p class="Pp"></p>
3447 63657f42 2022-09-07 stsp <div class="Bd Bd-indent"><code class="Li">$ got send -f -b master
3448 63657f42 2022-09-07 stsp origin</code></div>
3449 63657f42 2022-09-07 stsp <p class="Pp">If multiple pull requests need to be managed in parallel, a
3450 63657f42 2022-09-07 stsp separate branch must be created for each pull request with
3451 63657f42 2022-09-07 stsp <code class="Cm">got branch</code>. Each such branch can then be used as
3452 63657f42 2022-09-07 stsp above, in place of &#x201C;refs/heads/master&#x201D;. Changes for any
3453 63657f42 2022-09-07 stsp accepted pull requests will still appear under
3454 63657f42 2022-09-07 stsp &#x201C;refs/remotes/upstream/master,&#x201D; regardless of which branch was
3455 63657f42 2022-09-07 stsp used in the forked repository to create a pull request.</p>
3456 8797b228 2019-08-04 stsp </section>
3457 8797b228 2019-08-04 stsp <section class="Sh">
3458 63657f42 2022-09-07 stsp <h2 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
3459 63657f42 2022-09-07 stsp ALSO</a></h2>
3460 376d4d52 2022-07-04 stsp <p class="Pp"><a class="Xr" aria-label="gotadmin, section 1">gotadmin(1)</a>,
3461 376d4d52 2022-07-04 stsp <a class="Xr" aria-label="tog, section 1">tog(1)</a>,
3462 376d4d52 2022-07-04 stsp <a class="Xr" aria-label="git-repository, section 5">git-repository(5)</a>,
3463 376d4d52 2022-07-04 stsp <a class="Xr" aria-label="got-worktree, section 5">got-worktree(5)</a>,
3464 51683866 2022-07-14 stsp <a class="Xr" aria-label="got.conf, section 5">got.conf(5)</a>,
3465 47f19dd5 2023-01-17 stsp <a class="Xr" aria-label="gotwebd, section 8">gotwebd(8)</a></p>
3466 8797b228 2019-08-04 stsp </section>
3467 8797b228 2019-08-04 stsp <section class="Sh">
3468 63657f42 2022-09-07 stsp <h2 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h2>
3469 51683866 2022-07-14 stsp <p class="Pp"><span class="An">Anthony J. Bentley</span>
3470 51683866 2022-07-14 stsp &lt;<a class="Mt" href="mailto:bentley@openbsd.org">bentley@openbsd.org</a>&gt;
3471 d8e62599 2019-10-21 stsp <br/>
3472 51683866 2022-07-14 stsp <span class="An">Christian Weisgerber</span>
3473 51683866 2022-07-14 stsp &lt;<a class="Mt" href="mailto:naddy@openbsd.org">naddy@openbsd.org</a>&gt;
3474 b183145b 2024-08-14 op <br/>
3475 b183145b 2024-08-14 op <span class="An">Florian Obser</span>
3476 b183145b 2024-08-14 op &lt;<a class="Mt" href="mailto:florian@narrans.de">florian@narrans.de</a>&gt;
3477 d8e62599 2019-10-21 stsp <br/>
3478 51683866 2022-07-14 stsp <span class="An">Hiltjo Posthuma</span>
3479 51683866 2022-07-14 stsp &lt;<a class="Mt" href="mailto:hiltjo@codemadness.org">hiltjo@codemadness.org</a>&gt;
3480 b183145b 2024-08-14 op <br/>
3481 b183145b 2024-08-14 op <span class="An">James Cook</span>
3482 b183145b 2024-08-14 op &lt;<a class="Mt" href="mailto:falsifian@falsifian.org">falsifian@falsifian.org</a>&gt;
3483 b183145b 2024-08-14 op <br/>
3484 b183145b 2024-08-14 op <span class="An">Jasper Lievisse Adriaanse</span>
3485 b183145b 2024-08-14 op &lt;<a class="Mt" href="mailto:j@jasper.la">j@jasper.la</a>&gt;
3486 51683866 2022-07-14 stsp <br/>
3487 51683866 2022-07-14 stsp <span class="An">Josh Rickmar</span>
3488 51683866 2022-07-14 stsp &lt;<a class="Mt" href="mailto:jrick@zettaport.com">jrick@zettaport.com</a>&gt;
3489 51683866 2022-07-14 stsp <br/>
3490 d8e62599 2019-10-21 stsp <span class="An">Joshua Stein</span>
3491 b213cbf7 2020-03-23 stsp &lt;<a class="Mt" href="mailto:jcs@openbsd.org">jcs@openbsd.org</a>&gt;
3492 b213cbf7 2020-03-23 stsp <br/>
3493 b183145b 2024-08-14 op <span class="An">Josiah Frentsos</span>
3494 b183145b 2024-08-14 op &lt;<a class="Mt" href="mailto:jfrent@tilde.team">jfrent@tilde.team</a>&gt;
3495 b183145b 2024-08-14 op <br/>
3496 51683866 2022-07-14 stsp <span class="An">Klemens Nanni</span>
3497 51683866 2022-07-14 stsp &lt;<a class="Mt" href="mailto:kn@openbsd.org">kn@openbsd.org</a>&gt;
3498 51683866 2022-07-14 stsp <br/>
3499 b183145b 2024-08-14 op <span class="An">Kyle Ackerman</span>
3500 b183145b 2024-08-14 op &lt;<a class="Mt" href="mailto:kackerman0102@gmail.com">kackerman0102@gmail.com</a>&gt;
3501 b183145b 2024-08-14 op <br/>
3502 b183145b 2024-08-14 op <span class="An">Lorenz (xha)</span>
3503 b183145b 2024-08-14 op &lt;<a class="Mt" href="mailto:me@xha.li">me@xha.li</a>&gt;
3504 b183145b 2024-08-14 op <br/>
3505 b183145b 2024-08-14 op <span class="An">Lucas Gabriel Vuotto</span>
3506 b183145b 2024-08-14 op &lt;<a class="Mt" href="mailto:lucas@sexy.is">lucas@sexy.is</a>&gt;
3507 b183145b 2024-08-14 op <br/>
3508 b183145b 2024-08-14 op <span class="An">Mark Jamsek</span>
3509 b183145b 2024-08-14 op &lt;<a class="Mt" href="mailto:mark@jamsek.dev">mark@jamsek.dev</a>&gt;
3510 b183145b 2024-08-14 op <br/>
3511 51683866 2022-07-14 stsp <span class="An">Martin Pieuchot</span>
3512 51683866 2022-07-14 stsp &lt;<a class="Mt" href="mailto:mpi@openbsd.org">mpi@openbsd.org</a>&gt;
3513 51683866 2022-07-14 stsp <br/>
3514 b183145b 2024-08-14 op <span class="An">Mikhail Pchelin</span>
3515 b183145b 2024-08-14 op &lt;<a class="Mt" href="mailto:misha@freebsd.org">misha@freebsd.org</a>&gt;
3516 b183145b 2024-08-14 op <br/>
3517 51683866 2022-07-14 stsp <span class="An">Neels Hofmeyr</span>
3518 51683866 2022-07-14 stsp &lt;<a class="Mt" href="mailto:neels@hofmeyr.de">neels@hofmeyr.de</a>&gt;
3519 51683866 2022-07-14 stsp <br/>
3520 51683866 2022-07-14 stsp <span class="An">Omar Polo</span>
3521 51683866 2022-07-14 stsp &lt;<a class="Mt" href="mailto:op@openbsd.org">op@openbsd.org</a>&gt;
3522 51683866 2022-07-14 stsp <br/>
3523 b213cbf7 2020-03-23 stsp <span class="An">Ori Bernstein</span>
3524 51683866 2022-07-14 stsp &lt;<a class="Mt" href="mailto:ori@openbsd.org">ori@openbsd.org</a>&gt;
3525 51683866 2022-07-14 stsp <br/>
3526 51683866 2022-07-14 stsp <span class="An">Sebastien Marie</span>
3527 51683866 2022-07-14 stsp &lt;<a class="Mt" href="mailto:semarie@openbsd.org">semarie@openbsd.org</a>&gt;
3528 51683866 2022-07-14 stsp <br/>
3529 51683866 2022-07-14 stsp <span class="An">Stefan Sperling</span>
3530 51683866 2022-07-14 stsp &lt;<a class="Mt" href="mailto:stsp@openbsd.org">stsp@openbsd.org</a>&gt;
3531 51683866 2022-07-14 stsp <br/>
3532 51683866 2022-07-14 stsp <span class="An">Steven McDonald</span>
3533 51683866 2022-07-14 stsp &lt;<a class="Mt" href="mailto:steven@steven-mcdonald.id.au">steven@steven-mcdonald.id.au</a>&gt;
3534 51683866 2022-07-14 stsp <br/>
3535 b183145b 2024-08-14 op <span class="An">Ted Unangst</span>
3536 b183145b 2024-08-14 op &lt;<a class="Mt" href="mailto:tedu@tedunangst.com">tedu@tedunangst.com</a>&gt;
3537 b183145b 2024-08-14 op <br/>
3538 51683866 2022-07-14 stsp <span class="An">Theo Buehler</span>
3539 51683866 2022-07-14 stsp &lt;<a class="Mt" href="mailto:tb@openbsd.org">tb@openbsd.org</a>&gt;
3540 51683866 2022-07-14 stsp <br/>
3541 51683866 2022-07-14 stsp <span class="An">Thomas Adam</span>
3542 51683866 2022-07-14 stsp &lt;<a class="Mt" href="mailto:thomas@xteddy.org">thomas@xteddy.org</a>&gt;
3543 51683866 2022-07-14 stsp <br/>
3544 b183145b 2024-08-14 op <span class="An">Tobias Heider</span>
3545 b183145b 2024-08-14 op &lt;<a class="Mt" href="mailto:me@tobhe.de">me@tobhe.de</a>&gt;
3546 b183145b 2024-08-14 op <br/>
3547 b183145b 2024-08-14 op <span class="An">Tom Jones</span>
3548 b183145b 2024-08-14 op &lt;<a class="Mt" href="mailto:thj@freebsd.org">thj@freebsd.org</a>&gt;
3549 b183145b 2024-08-14 op <br/>
3550 51683866 2022-07-14 stsp <span class="An">Tracey Emery</span>
3551 51683866 2022-07-14 stsp &lt;<a class="Mt" href="mailto:tracey@traceyemery.net">tracey@traceyemery.net</a>&gt;
3552 51683866 2022-07-14 stsp <br/>
3553 51683866 2022-07-14 stsp <span class="An">Yang Zhong</span>
3554 51683866 2022-07-14 stsp &lt;<a class="Mt" href="mailto:yzhong@freebsdfoundation.org">yzhong@freebsdfoundation.org</a>&gt;</p>
3555 51683866 2022-07-14 stsp <p class="Pp">Parts of <code class="Nm">got</code>,
3556 b183145b 2024-08-14 op <a class="Xr" aria-label="tog, section 1">tog(1)</a>,
3557 b183145b 2024-08-14 op <a class="Xr" aria-label="gotd, section 8">gotd(8)</a>, and
3558 47f19dd5 2023-01-17 stsp <a class="Xr" aria-label="gotwebd, section 8">gotwebd(8)</a> were derived
3559 47f19dd5 2023-01-17 stsp from code under copyright by:</p>
3560 51683866 2022-07-14 stsp <p class="Pp">
3561 51683866 2022-07-14 stsp <br/>
3562 b183145b 2024-08-14 op <span class="An">Bjoern Hoehrmann</span>
3563 b183145b 2024-08-14 op <br/>
3564 63657f42 2022-09-07 stsp <span class="An">Caldera International</span>
3565 51683866 2022-07-14 stsp <br/>
3566 51683866 2022-07-14 stsp <span class="An">Daniel Hartmeier</span>
3567 51683866 2022-07-14 stsp <br/>
3568 b183145b 2024-08-14 op <span class="An">David Gwynne</span>
3569 b183145b 2024-08-14 op <br/>
3570 51683866 2022-07-14 stsp <span class="An">Esben Norby</span>
3571 51683866 2022-07-14 stsp <br/>
3572 b183145b 2024-08-14 op <span class="An">Florian Obser</span>
3573 b183145b 2024-08-14 op <br/>
3574 51683866 2022-07-14 stsp <span class="An">Henning Brauer</span>
3575 51683866 2022-07-14 stsp <br/>
3576 51683866 2022-07-14 stsp <span class="An">H&#x00E5;kan Olsson</span>
3577 51683866 2022-07-14 stsp <br/>
3578 51683866 2022-07-14 stsp <span class="An">Ingo Schwarze</span>
3579 51683866 2022-07-14 stsp <br/>
3580 51683866 2022-07-14 stsp <span class="An">Jean-Francois Brousseau</span>
3581 51683866 2022-07-14 stsp <br/>
3582 b183145b 2024-08-14 op <span class="An">Jerome Kasper</span>
3583 b183145b 2024-08-14 op <br/>
3584 51683866 2022-07-14 stsp <span class="An">Joris Vink</span>
3585 51683866 2022-07-14 stsp <br/>
3586 51683866 2022-07-14 stsp <span class="An">Jyri J. Virkki</span>
3587 51683866 2022-07-14 stsp <br/>
3588 51683866 2022-07-14 stsp <span class="An">Larry Wall</span>
3589 51683866 2022-07-14 stsp <br/>
3590 51683866 2022-07-14 stsp <span class="An">Markus Friedl</span>
3591 51683866 2022-07-14 stsp <br/>
3592 b183145b 2024-08-14 op <span class="An">Mike Larkin</span>
3593 b183145b 2024-08-14 op <br/>
3594 51683866 2022-07-14 stsp <span class="An">Niall O'Higgins</span>
3595 51683866 2022-07-14 stsp <br/>
3596 51683866 2022-07-14 stsp <span class="An">Niklas Hallqvist</span>
3597 51683866 2022-07-14 stsp <br/>
3598 51683866 2022-07-14 stsp <span class="An">Ray Lai</span>
3599 51683866 2022-07-14 stsp <br/>
3600 b183145b 2024-08-14 op <span class="An">Reyk Floeter</span>
3601 b183145b 2024-08-14 op <br/>
3602 51683866 2022-07-14 stsp <span class="An">Ryan McBride</span>
3603 51683866 2022-07-14 stsp <br/>
3604 b183145b 2024-08-14 op <span class="An">Ted Unangst</span>
3605 b183145b 2024-08-14 op <br/>
3606 51683866 2022-07-14 stsp <span class="An">Theo de Raadt</span>
3607 51683866 2022-07-14 stsp <br/>
3608 51683866 2022-07-14 stsp <span class="An">Todd C. Miller</span>
3609 51683866 2022-07-14 stsp <br/>
3610 51683866 2022-07-14 stsp <span class="An">Xavier Santolaria</span></p>
3611 51683866 2022-07-14 stsp <p class="Pp"><code class="Nm">got</code> contains code contributed to the
3612 51683866 2022-07-14 stsp public domain by
3613 51683866 2022-07-14 stsp <br/>
3614 47f19dd5 2023-01-17 stsp <span class="An">Austin Appleby</span>.</p>
3615 8797b228 2019-08-04 stsp </section>
3616 8797b228 2019-08-04 stsp <section class="Sh">
3617 63657f42 2022-09-07 stsp <h2 class="Sh" id="CAVEATS"><a class="permalink" href="#CAVEATS">CAVEATS</a></h2>
3618 bbf83bf8 2020-12-27 stsp <p class="Pp"><code class="Nm">got</code> is a work-in-progress and some
3619 bbf83bf8 2020-12-27 stsp features remain to be implemented.</p>
3620 376d4d52 2022-07-04 stsp <p class="Pp">At present, the user has to fall back on
3621 376d4d52 2022-07-04 stsp <a class="Xr" aria-label="git, section 1">git(1)</a> to perform some tasks.
3622 376d4d52 2022-07-04 stsp In particular:</p>
3623 bbf83bf8 2020-12-27 stsp <ul class="Bl-bullet">
3624 b183145b 2024-08-14 op <li>With repositories that use the sha256 object ID hashing algorithm,
3625 b183145b 2024-08-14 op <a class="Xr" aria-label="git, section 1">git(1)</a> is currently required
3626 b183145b 2024-08-14 op for all network operations (clone, fetch, and push) because
3627 b183145b 2024-08-14 op <code class="Nm">got</code> does not yet support version 2 of the Git
3628 b183145b 2024-08-14 op network protocol.</li>
3629 def5be4a 2021-08-31 stsp <li>Writing to remote repositories over HTTP or HTTPS protocols requires
3630 376d4d52 2022-07-04 stsp <a class="Xr" aria-label="git-push, section 1">git-push(1)</a>.</li>
3631 417cb057 2021-10-03 stsp <li>The creation of merge commits with more than two parent commits requires
3632 376d4d52 2022-07-04 stsp <a class="Xr" aria-label="git-merge, section 1">git-merge(1)</a>.</li>
3633 bbf83bf8 2020-12-27 stsp <li>In situations where files or directories were moved around
3634 bbf83bf8 2020-12-27 stsp <code class="Cm">got</code> will not automatically merge changes to new
3635 376d4d52 2022-07-04 stsp locations and <a class="Xr" aria-label="git, section 1">git(1)</a> will
3636 376d4d52 2022-07-04 stsp usually produce better results.</li>
3637 bbf83bf8 2020-12-27 stsp </ul>
3638 8797b228 2019-08-04 stsp </section>
3639 63657f42 2022-09-07 stsp </main>
3640 63657f42 2022-09-07 stsp <div class="foot" role="doc-pagefooter" aria-label="Manual footer
3641 b6df88e2 2024-12-28 stsp line"><span class="foot-left"></span><span class="foot-date">December 28,
3642 a3016eec 2024-10-22 op 2024</span> <span class="foot-os">OpenBSD 7.6</span></div>
3643 8797b228 2019-08-04 stsp </body>
3644 8797b228 2019-08-04 stsp </html>