CentOS7 に最新VerのGitコマンドをインストールする

2018/05/21：[gist](https://gist.github.com/mao172/517a4ed3c48b924880f7a66e1ace1a81)に書いていたのをQiitaに転記

## 参考

- [Download for Linux and Unix](https://git-scm.com/download/linux)　- (Git)
- [Getting Started](https://ius.io/GettingStarted/) - (IUS)

## 1. リポジトリの追加


```
$ yum install -y https://centos7.iuscommunity.org/ius-release.rpm

```

依存関係でepel-releaseも追加されます。


```
$ yum list git*

読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * epel: epel.scopesky.iq
 * extras: ftp.iij.ad.jp
 * ius: archive.linux.duke.edu
 * updates: centos.usonyx.net
インストール済みパッケージ
git.x86_64                                         1.8.3.1-12.el7_4                                        @updates
git-svn.x86_64                                     1.8.3.1-12.el7_4                                        @updates
利用可能なパッケージ
GitPython.noarch                                   1.0.1-7.el7                                             epel
git-all.noarch                                     1.8.3.1-12.el7_4                                        updates
git-annex.x86_64                                   5.20140221-1.2.el7                                      epel
git-bzr.noarch                                     1.8.3.1-12.el7_4                                        updates
git-cal.noarch                                     0.9.1-3.el7                                             epel
git-cola.noarch                                    2.10-1.el7                                              epel
git-cvs.noarch                                     1.8.3.1-12.el7_4                                        updates
git-daemon.x86_64                                  1.8.3.1-12.el7_4                                        updates
git-email.noarch                                   1.8.3.1-12.el7_4                                        updates
git-extras.noarch                                  4.4.0-1.el7                                             epel
git-gui.noarch                                     1.8.3.1-12.el7_4                                        updates
git-hg.noarch                                      1.8.3.1-12.el7_4                                        updates
git-merge-changelog.x86_64                         0-14.20150325git.el7                                    epel
git-p4.noarch                                      1.8.3.1-12.el7_4                                        updates
git-publish.noarch                                 1.4.2-2.el7                                             epel
git-review.noarch                                  1.24-5.el7                                              epel
git-tools.noarch                                   2017.10-1.el7                                           epel
git-xcleaner.noarch                                1.5-1.el7                                               epel
git2cl.noarch                                      2.0-0.8.git8373c9f.el7                                  epel
git2u.x86_64                                       2.16.1-1.ius.centos7                                    ius
git2u-all.noarch                                   2.16.1-1.ius.centos7                                    ius
git2u-core.x86_64                                  2.16.1-1.ius.centos7                                    ius
git2u-core-doc.noarch                              2.16.1-1.ius.centos7                                    ius
git2u-cvs.noarch                                   2.16.1-1.ius.centos7                                    ius
git2u-daemon.x86_64                                2.16.1-1.ius.centos7                                    ius
git2u-debuginfo.x86_64                             2.16.1-1.ius.centos7                                    ius
git2u-email.noarch                                 2.16.1-1.ius.centos7                                    ius
git2u-gitk.noarch                                  2.16.1-1.ius.centos7                                    ius
git2u-gitweb.noarch                                2.16.1-1.ius.centos7                                    ius
git2u-gui.noarch                                   2.16.1-1.ius.centos7                                    ius
git2u-p4.noarch                                    2.16.1-1.ius.centos7                                    ius
git2u-perl-Git.noarch                              2.16.1-1.ius.centos7                                    ius
git2u-perl-Git-SVN.noarch                          2.16.1-1.ius.centos7                                    ius
git2u-svn.x86_64                                   2.16.1-1.ius.centos7                                    ius
gitflow.noarch                                     0.4.2.20120723git53e9c76-4.el7                          epel
gitg.x86_64                                        3.22.0-2.el7                                            epel
gitg-devel.x86_64                                  3.22.0-2.el7                                            epel
gitg-libs.x86_64                                   3.22.0-2.el7                                            epel
github2fedmsg.noarch                               0.3.6-1.el7                                             epel
gitk.noarch                                        1.8.3.1-12.el7_4                                        updates
gitolite.noarch                                    2.3.1-15.el7                                            epel
gitolite3.noarch                                   1:3.6.7-3.el7                                           epel
gitstats.noarch                                    0-0.6.20130723gita923085.el7                            epel
gitweb.noarch                                      1.8.3.1-12.el7_4                                        updates

```

git2uで始まるパッケージが取得できていればOK

## 2. 旧バージョンのGitをインストールしている場合は削除する

標準パッケージでインストールしている場合、競合が発生するので、削除します。
`perl-Git`を指定すれば、依存関係で削除してくれる。

```
$ yum erase -y perl-Git

読み込んだプラグイン:fastestmirror
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ perl-Git.noarch 0:1.8.3.1-12.el7_4 を 削除
--> 依存性の処理をしています: perl(Git) のパッケージ: git-1.8.3.1-12.el7_4.x86_64
--> 依存性の処理をしています: perl(Git) のパッケージ: git-svn-1.8.3.1-12.el7_4.x86_64
--> 依存性の処理をしています: perl(Git) のパッケージ: perl-Git-SVN-1.8.3.1-12.el7_4.noarch
--> 依存性の処理をしています: perl-Git = 1.8.3.1-12.el7_4 のパッケージ: git-1.8.3.1-12.el7_4.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ git.x86_64 0:1.8.3.1-12.el7_4 を 削除
---> パッケージ git-svn.x86_64 0:1.8.3.1-12.el7_4 を 削除
---> パッケージ perl-Git-SVN.noarch 0:1.8.3.1-12.el7_4 を 削除
--> 依存性解決を終了しました。

依存性を解決しました

===================================================================================================================
 Package                     アーキテクチャー      バージョン                        リポジトリー             容量
===================================================================================================================
削除中:
 perl-Git                    noarch                1.8.3.1-12.el7_4                  @updates                 57 k
依存性関連での削除をします:
 git                         x86_64                1.8.3.1-12.el7_4                  @updates                 22 M
 git-svn                     x86_64                1.8.3.1-12.el7_4                  @updates                924 k
 perl-Git-SVN                noarch                1.8.3.1-12.el7_4                  @updates                161 k

トランザクションの要約
===================================================================================================================
削除  1 パッケージ (+3 個の依存関係のパッケージ)

インストール容量: 23 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  削除中                  : git-svn-1.8.3.1-12.el7_4.x86_64                                                    1/4
  削除中                  : perl-Git-SVN-1.8.3.1-12.el7_4.noarch                                               2/4
  削除中                  : perl-Git-1.8.3.1-12.el7_4.noarch                                                   3/4
  削除中                  : git-1.8.3.1-12.el7_4.x86_64                                                        4/4
  検証中                  : git-1.8.3.1-12.el7_4.x86_64                                                        1/4
  検証中                  : perl-Git-SVN-1.8.3.1-12.el7_4.noarch                                               2/4
  検証中                  : git-svn-1.8.3.1-12.el7_4.x86_64                                                    3/4
  検証中                  : perl-Git-1.8.3.1-12.el7_4.noarch                                                   4/4

削除しました:
  perl-Git.noarch 0:1.8.3.1-12.el7_4

依存性の削除をしました:
  git.x86_64 0:1.8.3.1-12.el7_4    git-svn.x86_64 0:1.8.3.1-12.el7_4    perl-Git-SVN.noarch 0:1.8.3.1-12.el7_4

完了しました!

```


## 3. インストール

```
$ yum install -y git2u-svn

```

## 4. インストールしたGitのバージョン確認

```
$ git svn --version
git-svn version 2.16.1 (svn 1.7.14)
```