Git-2.20.1
Introduction to Git
Git is a free and open source,
distributed version control system designed to handle everything
from small to very large projects with speed and efficiency. Every
Git clone is a full-fledged
repository with complete history and full revision tracking
capabilities, not dependent on network access or a central server.
Branching and merging are fast and easy to do. Git is used for version control of files, much
like tools such as Mercurial-4.9, Bazaar, Subversion-1.11.1, CVS, Perforce, and Team
Foundation Server.
This package is known to build and work properly using an LFS-8.4
platform.
Package Information
Additional Downloads
Git Dependencies
Recommended
cURL-7.64.0 (needed to use Git over http, https, ftp or ftps)
Optional
pcre2-10.32 (or the deprecated PCRE-8.42), in either case
configured with --enable-jit
,
Python-2.7.15, Subversion-1.11.1
with Perl bindings (for git
svn), Tk-8.6.9 (gitk, a simple Git repository viewer, uses Tk at runtime), and Valgrind-3.14.0
Optional (to create the man pages, html docs and other docs)
xmlto-0.0.28 and asciidoc-8.6.9 or
AsciiDoctor,
and also dblatex (for the PDF version
of the user manual), and docbook2x to create info
pages
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/git
Installation of Git
Install Git by running the
following commands:
./configure --prefix=/usr --with-gitconfig=/etc/gitconfig &&
make
You can build the man pages and/or html docs, or use downloaded
ones. If you choose to build them, use next two following
instructions.
If you have installed asciidoc-8.6.9 you can create the html version
of the man pages and other docs:
make html
If you have installed asciidoc-8.6.9 and xmlto-0.0.28 you can
create the man pages:
make man
The test suite can be run in parallel mode. To run the test suite,
issue: make test. If
run as a normal user, 0 tests should be reported as failed in the
final summary.
Now, as the root
user:
make install
If you created the man pages and/or html docs
Install the man pages as root
user:
make install-man
Install the html docs as root
user:
make htmldir=/usr/share/doc/git-2.20.1 install-html
If you downloaded the man pages and/or html docs
If you downloaded the man pages untar them as the root
user:
tar -xf ../git-manpages-2.20.1.tar.xz \
-C /usr/share/man --no-same-owner --no-overwrite-dir
If you downloaded the html docs untar them as the root
user:
mkdir -vp /usr/share/doc/git-2.20.1 &&
tar -xf ../git-htmldocs-2.20.1.tar.xz \
-C /usr/share/doc/git-2.20.1 --no-same-owner --no-overwrite-dir &&
find /usr/share/doc/git-2.20.1 -type d -exec chmod 755 {} \; &&
find /usr/share/doc/git-2.20.1 -type f -exec chmod 644 {} \;
Reorganize text and html in the html-docs (both methods)
For both methods, the html-docs include a lot of plain text files.
Reorganize the files as the root
user:
mkdir -vp /usr/share/doc/git-2.20.1/man-pages/{html,text} &&
mv /usr/share/doc/git-2.20.1/{git*.txt,man-pages/text} &&
mv /usr/share/doc/git-2.20.1/{git*.,index.,man-pages/}html &&
mkdir -vp /usr/share/doc/git-2.20.1/technical/{html,text} &&
mv /usr/share/doc/git-2.20.1/technical/{*.txt,text} &&
mv /usr/share/doc/git-2.20.1/technical/{*.,}html &&
mkdir -vp /usr/share/doc/git-2.20.1/howto/{html,text} &&
mv /usr/share/doc/git-2.20.1/howto/{*.txt,text} &&
mv /usr/share/doc/git-2.20.1/howto/{*.,}html &&
sed -i '/^<a href=/s|howto/|&html/|' /usr/share/doc/git-2.20.1/howto-index.html &&
sed -i '/^\* link:/s|howto/|&html/|' /usr/share/doc/git-2.20.1/howto-index.txt
Command Explanations
--with-gitconfig=/etc/gitconfig
: This
sets /etc/gitconfig
as the file that
stores the default, system wide, Git settings.
--with-python=python3
: Use this switch
to allow using Python 3.
Python is only used for the
git p4 interface to
Perforce repositories.
--with-libpcre2
: Use this switch if
PCRE2 is installed and has been
built with the non-default JIT enabled.
--with-libpcre
: As an alternative to
PCRE2, use this switch if the deprecated PCRE is installed and has been built with the
non-default JIT enabled.
tar -xf ../git-manpages-2.20.1.tar.gz
-C /usr/share/man --no-same-owner: This untars
git-manpages-2.20.1.tar.gz
. The
-C
option makes tar change directory to
/usr/share/man
before it starts to
decompress the docs. The --no-same-owner
option stops tar from preserving
the user and group details of the files. This is useful as that
user or group may not exist on your system; this could
(potentially) be a security risk.
mv /usr/share/doc/git-2.20.1
...: These commands move some of the files into
subfolders to make it easier to sort through the docs and find what
you're looking for.
find ... chmod ...:
These commands correct the permissions in the shipped documentation
tar file.
Configuring Git
Config Files
~/.gitconfig
and /etc/gitconfig
Contents
Installed Programs:
git, git-receive-pack and
git-upload-archive (hardlinked to each other), git-cvsserver,
git-shell, git-upload-pack, and gitk
Installed Libraries:
None
Installed Directories:
/usr/share/perl5/Git,
/usr/libexec/git-core and
/usr/share/{doc/git-2.20.1,git-core,git-gui,gitk,gitweb}
Short Descriptions
git
|
is the stupid content tracker.
|
git-cvsserver
|
is a CVS server emulator for Git.
|
gitk
|
is a graphical Git
repository browser (needs Tk-8.6.9).
|
git-receive-pack
|
is invoked by git
send-pack and updates the repository with
the information fed from the remote end.
|
git-shell
|
is a login shell for SSH accounts to provide restricted
Git access.
|
git-upload-archive
|
is invoked by git archive
--remote and sends a generated archive to
the other end over the git protocol.
|
git-upload-pack
|
is invoked by git
fetch-pack, it discovers what objects the
other side is missing, and sends them after packing.
|
Last updated on 2019-02-16 01:24:48 -0800