Git-1.8.4

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.3, CVS-1.11.23, Perforce, and Team Foundation Server.

This package is known to build and work properly using an LFS-7.4 platform.

Package Information

Additional Downloads

Git Dependencies

Recommended

Optional

PCRE-8.33, Subversion-1.8.3 with Perl bindings (for git svn), and Tk-8.6.0 (gitk, a simple Git repository viewer, uses Tk at runtime)

Optional (to create the man pages and html docs)

AsciiDoc and xmlto-0.0.25

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/git

Installation of Git

Install Git by running the following commands:

./configure --prefix=/usr \
            --libexecdir=/usr/lib \
            --with-gitconfig=/etc/gitconfig &&
make

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.25 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, install them as the root user:

make install-man

If you created the html docs, install them as the root user:

make htmldir=/usr/share/doc/git-1.8.4 install-html              &&
mkdir -p /usr/share/doc/git-1.8.4/man-pages/{html,text}         &&
mv       /usr/share/doc/git-1.8.4/{git*.txt,man-pages/text}     &&
mv       /usr/share/doc/git-1.8.4/{git*.,index.,man-pages/}html &&
mkdir    /usr/share/doc/git-1.8.4/technical/{html,text}         &&
mv       /usr/share/doc/git-1.8.4/technical/{*.txt,text}        &&
mv       /usr/share/doc/git-1.8.4/technical/{*.,}html           &&
mkdir    /usr/share/doc/git-1.8.4/howto/{html,text}             &&
mv       /usr/share/doc/git-1.8.4/howto/{*.txt,text}            &&
mv       /usr/share/doc/git-1.8.4/howto/{*.,}html

Alternatively, If you downloaded the man pages untar them as the root user:

tar -xf ../git-manpages-1.8.4.tar.gz -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-1.8.4/man-pages/{html,text}         &&

tar -xf  ../git-htmldocs-1.8.4.tar.gz \
    -C   /usr/share/doc/git-1.8.4 --no-same-owner --no-overwrite-dir &&

find /usr/share/doc/git-1.8.4 -type d -exec chmod 755 {} \;     &&
find /usr/share/doc/git-1.8.4 -type f -exec chmod 644 {} \;     &&

mv       /usr/share/doc/git-1.8.4/{git*.txt,man-pages/text}     &&
mv       /usr/share/doc/git-1.8.4/{git*.,index.,man-pages/}html &&
mkdir    /usr/share/doc/git-1.8.4/technical/{html,text}         &&
mv       /usr/share/doc/git-1.8.4/technical/{*.txt,text}        &&
mv       /usr/share/doc/git-1.8.4/technical/{*.,}html           &&
mkdir    /usr/share/doc/git-1.8.4/howto/{html,text}             &&
mv       /usr/share/doc/git-1.8.4/howto/{*.txt,text}            &&
mv       /usr/share/doc/git-1.8.4/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-1.8.4.tar.gz -C /usr/share/man --no-same-owner: This untars git-manpages-1.8.4.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-1.8.4 ...: 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

Configuration Information

To be able to use git to pull from a https source you need first install the Certificate Authority Certificates and then configure git to know where they are. To set the default location of the SSL certificates, as the root user:

git config --system http.sslCAPath /etc/ssl/certs

Contents

Installed Programs: git, git-cvsserver, gitk, git-receive-pack, git-shell, git-upload-archive and git-upload-pack
Installed Libraries: None
Installed Directories: /usr/lib/git-core, /usr/share/doc/git-1.8.4, /usr/share/git-core, /usr/share/git-gui, /usr/share/gitk and /usr/share/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.0).

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 2013-09-05 23:18:35 -0700