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,
Bazaar, Subversion-1.8.10,
CVS-1.11.23, Perforce, and Team
Foundation Server.
This package is known to build and work properly using an LFS-7.6
systemd platform.
Package Information
Additional Downloads
Git Dependencies
Recommended
cURL-7.37.1 (needed to use Git over http, https, ftp or ftps), OpenSSL-1.0.1i, and Python-2.7.8
Optional
PCRE-8.35,
Subversion-1.8.10 with Perl bindings (for
git svn), and
Tk-8.6.2 (gitk,
a simple Git repository viewer,
uses Tk at runtime)
Optional (to create the man pages and html docs)
xmlto-0.0.26 and AsciiDoc
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/git
Installation of Git
First, silence a lot of compiler warnings by running the following
command:
sed -i "/BSD_SOURCE/d" git-compat-util.h
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 you can create
the html version of the man pages and other docs:
make html
If you have installed AsciiDoc and xmlto-0.0.26 you can create the man pages:
make man
To check the results, issue: make
test.
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.1.0 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.1.0.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 -p /usr/share/doc/git-2.1.0/man-pages/{html,text} &&
tar -xf ../git-htmldocs-2.1.0.tar.xz \
-C /usr/share/doc/git-2.1.0 --no-same-owner --no-overwrite-dir &&
find /usr/share/doc/git-2.1.0 -type d -exec chmod 755 {} \; &&
find /usr/share/doc/git-2.1.0 -type f -exec chmod 644 {} \;
Reorganize man pages and/or html docs (both methods)
For both methods, reorganize the files, as root
user:
mv /usr/share/doc/git-2.1.0/{git*.txt,man-pages/text} &&
mv /usr/share/doc/git-2.1.0/{git*.,index.,man-pages/}html &&
mkdir /usr/share/doc/git-2.1.0/technical/{html,text} &&
mv /usr/share/doc/git-2.1.0/technical/{*.txt,text} &&
mv /usr/share/doc/git-2.1.0/technical/{*.,}html &&
mkdir /usr/share/doc/git-2.1.0/howto/{html,text} &&
mv /usr/share/doc/git-2.1.0/howto/{*.txt,text} &&
mv /usr/share/doc/git-2.1.0/howto/{*.,}html
Command Explanations
--with-gitconfig=/etc/gitconfig
: This
sets /etc/gitconfig
as the file that
stores the default, system wide, Git settings.
--without-python
: Use this switch if
Python is not installed.
--with-libpcre
: Use this switch if
PCRE is installed.
tar -xf ../git-manpages-2.1.0.tar.gz
-C /usr/share/man --no-same-owner: This untars
git-manpages-2.1.0.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.1.0
...: 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.