@@ -190,6 +190,44 @@ Identifier terminology
190190 Indicates a filename - always relative to the root of
191191 the tree structure GIT_INDEX_FILE describes.
192192
193+ Symbolic Identifiers
194+ --------------------
195+ Any git comand accepting any <object> can also use the following symbolic notation:
196+
197+ HEAD::
198+ indicates the head of the repository (ie the contents of `$GIT_DIR/HEAD`)
199+ <tag>::
200+ a valid tag 'name'+
201+ (ie the contents of `$GIT_DIR/refs/tags/<tag>`)
202+ <head>::
203+ a valid head 'name'+
204+ (ie the contents of `$GIT_DIR/refs/heads/<head>`)
205+ <snap>::
206+ a valid snapshot 'name'+
207+ (ie the contents of `$GIT_DIR/refs/snap/<snap>`)
208+
209+
210+ File/Directory Structure
211+ ------------------------
212+ The git-core manipulates the following areas in the directory:
213+
214+ .git/ The base (overridden with $GIT_DIR)
215+ objects/ The object base (overridden with $GIT_OBJECT_DIRECTORY)
216+ ??/ 'First 2 chars of object' directories
217+
218+ It can interrogate (but never updates) the following areas:
219+
220+ refs/ Directories containing symbolic names for objects
221+ (each file contains the hex SHA1 + newline)
222+ heads/ Commits which are heads of various sorts
223+ tags/ Tags, by the tag name (or some local renaming of it)
224+ snap/ ????
225+ ... Everything else isn't shared
226+ HEAD Symlink to refs/heads/<something>
227+
228+ Higher level SCMs may provide and manage additional information in the
229+ GIT_DIR.
230+
193231Terminology
194232-----------
195233Each line contains terms used interchangeably
@@ -210,17 +248,52 @@ Environment Variables
210248---------------------
211249Various git commands use the following environment variables:
212250
213- - 'GIT_AUTHOR_NAME'
214- - 'GIT_AUTHOR_EMAIL'
215- - 'GIT_AUTHOR_DATE'
216- - 'GIT_COMMITTER_NAME'
217- - 'GIT_COMMITTER_EMAIL'
218- - 'GIT_DIFF_OPTS'
219- - 'GIT_EXTERNAL_DIFF'
220- - 'GIT_INDEX_FILE'
221- - 'GIT_OBJECT_DIRECTORY'
222- - 'GIT_ALTERNATE_OBJECT_DIRECTORIES'
223-
251+ The git Repository
252+ ~~~~~~~~~~~~~~~~~~
253+ These environment variables apply to 'all' core git commands. Nb: it
254+ is worth noting that they may be used/overridden by SCMS sitting above
255+ git so take care if using Cogito etc
256+
257+ 'GIT_INDEX_FILE'::
258+ This environment allows the specification of an alternate
259+ cache/index file. If not specified, the default of
260+ `$GIT_DIR/index` is used.
261+
262+ 'GIT_OBJECT_DIRECTORY'::
263+ If the object storage directory is specified via this
264+ environment variable then the sha1 directories are created
265+ underneath - otherwise the default `$GIT_DIR/objects`
266+ directory is used.
267+
268+ 'GIT_ALTERNATE_OBJECT_DIRECTORIES'::
269+ Due to the immutable nature of git objects, old objects can be
270+ archived into shared, read-only directories. This variable
271+ specifies a ":" seperated list of git object directories which
272+ can be used to search for git objects. New objects will not be
273+ written to these directories.
274+
275+ 'GIT_DIR'::
276+ If the 'GIT_DIR' environment variable is set then it specifies
277+ a path to use instead of `./.git` for the base of the
278+ repository.
279+
280+ git Commits
281+ ~~~~~~~~~~~
282+ 'GIT_AUTHOR_NAME'::
283+ 'GIT_AUTHOR_EMAIL'::
284+ 'GIT_AUTHOR_DATE'::
285+ 'GIT_COMMITTER_NAME'::
286+ 'GIT_COMMITTER_EMAIL'::
287+ see link:git-commit-tree.html[git-commit-tree]
288+
289+ git Diffs
290+ ~~~~~~~~~
291+ GIT_DIFF_OPTS::
292+ GIT_EXTERNAL_DIFF::
293+ see the "generating patches" section in :
294+ link:git-diff-cache.html[git-diff-cache];
295+ link:git-diff-files.html[git-diff-files];
296+ link:git-diff-tree.html[git-diff-tree]
224297
225298Author
226299------
0 commit comments