Git-2.28.0
      
      
        
          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-5.5, Bazaar, Subversion-1.14.0, CVS, Perforce, and Team
          Foundation Server.
        
        
          This package is known to build and work properly using an LFS-10.0
          platform.
        
        
          Package Information
        
        
          
            - 
              
                Download (HTTP): 
                https://www.kernel.org/pub/software/scm/git/git-2.28.0.tar.xz
              
             
            - 
              
                Download MD5 sum: 5fde0206768ed70092d1fcc8f447251a
              
             
            - 
              
                Download size: 5.8 MB
              
             
            - 
              
                Estimated disk space required: 521 MB (with downloaded
                documentation, 196 MB installed)
              
             
            - 
              
                Estimated build time: 0.4 SBU (with parallelism=4; add 2.7
                SBU for tests with parallelism=4)
              
             
          
         
        
          Additional Downloads
        
        
        
          Git Dependencies
        
        
          Recommended
        
        
          cURL-7.71.1 (needed to use Git over http, https, ftp or ftps)
        
        
          Optional
        
        
          pcre2-10.35 (or the deprecated PCRE-8.44), in either case
          configured with --enable-jit,
          Subversion-1.14.0 with Perl bindings (for
          git svn), Tk-8.6.10 (gitk, a
          simple Git repository viewer, uses
          Tk at runtime), and Valgrind-3.16.1
        
        
          Optional (to create the man pages, html docs and other docs)
        
        
          xmlto-0.0.28 and asciidoc-9.0.2 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 \
            --with-python=python3 &&
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-9.0.2 you can create the html version
          of the man pages and other docs:
        
        
make html
        
          If you have installed asciidoc-9.0.2 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 perllibdir=/usr/lib/perl5/5.32/site_perl 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.28.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.28.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 -vp   /usr/share/doc/git-2.28.0 &&
tar   -xf   ../git-htmldocs-2.28.0.tar.xz \
      -C    /usr/share/doc/git-2.28.0 --no-same-owner --no-overwrite-dir &&
find        /usr/share/doc/git-2.28.0 -type d -exec chmod 755 {} \; &&
find        /usr/share/doc/git-2.28.0 -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.28.0/man-pages/{html,text}         &&
mv        /usr/share/doc/git-2.28.0/{git*.txt,man-pages/text}     &&
mv        /usr/share/doc/git-2.28.0/{git*.,index.,man-pages/}html &&
mkdir -vp /usr/share/doc/git-2.28.0/technical/{html,text}         &&
mv        /usr/share/doc/git-2.28.0/technical/{*.txt,text}        &&
mv        /usr/share/doc/git-2.28.0/technical/{*.,}html           &&
mkdir -vp /usr/share/doc/git-2.28.0/howto/{html,text}             &&
mv        /usr/share/doc/git-2.28.0/howto/{*.txt,text}            &&
mv        /usr/share/doc/git-2.28.0/howto/{*.,}html               &&
sed -i '/^<a href=/s|howto/|&html/|' /usr/share/doc/git-2.28.0/howto-index.html &&
sed -i '/^\* link:/s|howto/|&html/|' /usr/share/doc/git-2.28.0/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 use Python 3, instead of the
          EOL'ed Python 2. Python is used
          for the git p4
          interface to Perforce repositories, and also used in some tests.
        
        
          --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.28.0.tar.gz
          -C /usr/share/man --no-same-owner: This untars
          git-manpages-2.28.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.28.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.
        
       
      
        
          Configuring Git
        
        
          
            
          
          
            Config Files
          
          
            ~/.gitconfig and /etc/gitconfig
          
         
       
      
        
          Contents
        
        
          
            
              Installed Programs:
              git, git-receive-pack,
              git-upload-archive, and git-upload-pack (hardlinked to each
              other), git-cvsserver, git-shell, and gitk
            
            
              Installed Libraries:
              None
            
            
              Installed Directories:
              /usr/libexec/git-core, and
              /usr/share/{doc/git-2.28.0,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.10).
                   
                 | 
              
              
                | 
                   
                    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 2020-08-17 17:28:02 -0700