Hello Linux Geeksters. As you may know, Git is an open-source revision control system. The latest version available is Git 2.3.0, which has been recently released, coming with a lot of changes and enhancements.
UI, Workflows & Features:
- It was cumbersome to use “GIT_SSH” mechanism when the user wanted to pass an extra set of arguments to the underlying ssh. A new environment variable GIT_SSH_COMMAND can be used for this.
- A request to store an empty note via “git notes” meant to remove note from the object but with –allow-empty we will store a (surprise!) note that is empty.
- “git interpret-trailers” learned to properly handle the “Conflicts:” block at the end.
- “git am” learned “–message-id” option to copy the message ID of the incoming e-mail to the log message of resulting commit.
- “git clone –reference=” learned the “–dissociate” option to go with it; it borrows objects from the reference object store while cloning only to reduce network traffic and then dissociates the resulting clone from the reference by performing local copies of borrowed objects.
- “git send-email” learned “–transfer-encoding” option to force a non-fault Content-Transfer-Encoding header (e.g. base64).
- “git send-email” normally identifies itself via X-Mailer: header in the message it sends out. A new command line flag –no-xmailer allows the user to squelch the header.
- “git push” into a repository with a working tree normally refuses to modify the branch that is checked out. The command learned to optionally do an equivalent of “git reset –hard” only when there is no change to the working tree and the index instead, which would be useful to “deploy” by pushing into a repository.
- “git new-workdir” (in contrib/) can be used to populate an empty and existing directory now.
- Credential helpers are asked in turn until one of them give positive response, which is cumbersome to turn off when you need to run Git in an automated setting. The credential helper interface learned to allow a helper to say “stop, don’t ask other helpers.” Also GIT_TERMINAL_PROMPT environment can be set to false to disable our built-in prompt mechanism for passwords.
- “git branch -d” (delete) and “git branch -m” (move) learned to honor “-f” (force) flag; unlike many other subcommands, the way to force these have been with separate “-D/-M” options, which was inconsistent.
- “diff-highlight” filter (in contrib/) allows its color output to be customized via configuration variables.
- “git imap-send” learned to take “-v” (verbose) and “-q” (quiet) command line options.
- “git remote add $name $URL” is now allowed when “url.$URL.insteadOf” is already defined.
- “git imap-send” now can be built to use cURL library to talk to IMAP servers (if the library is recent enough, of course). This allows you to use authenticate method other than CRAM-MD5, among other things.
- “git imap-send” now allows GIT_CURL_VERBOSE environment variable to control the verbosity when talking via the cURL library.
- The prompt script (in contrib/) learned to optionally hide prompt when in an ignored directory by setting GIT_PS1_HIDE_IF_PWD_IGNORED shell variable.
For information about this release, see the mailing lists.
In this article I will show you how to install Git 2.3 on Ubuntu 15.04 Vivid Vervet, Ubuntu 14.10 Utopic Unicorn, Ubuntu 14.04 Trusty Tahr, Ubuntu 12.04 Precise Pangolin, Linux Mint 17.1 Rebecca, Linux Mint 17 Qiana, Linux Mint 13 Maya, Pinguy OS 14.04, Elementary OS 0.3 Freya, Elementary OS 0.2 Luna, LXLE 14.04, Peppermint Five, Deepin 2014, Linux Lite 2.0 and other Ubuntu derivative systems.
Because it is available via PPA, installing Git 2.3 on Ubuntu 15.04, Ubuntu 14.10, Ubuntu 14.10, Ubuntu 14.04, Ubuntu 12.04 and derivative systems is easy. All you have to do is add the ppa to your system, update the local repository index and install the git package. Like this:
$ sudo add-apt-repository ppa:git-core/ppa
$ sudo apt-get update
$ sudo apt-get install git
Optional, to remove Git 2.3, do:
$ sudo apt-get remove git