Git – CentOS7への最新版のインストール

概要

CentOS7にはGitがインストールされているが、バージョンが1.8と少し古い。

また、yumで普通にインストールする場合も、バージョンが1.8のものしか提供されていない。

最新版のインストール方法はネット上でいろいろな方法が紹介されているが、IUSのリポジトリーを使うのが簡明なようだ。

参考サイト:CentOS7にgitをインストールする

ところがこれに従ってIUSのリポジトリーをインストールしようとしたところエラーとなった。

以下のサイトによると、IUSのURLが変わっているとのこと。

参考サイト:iusの最新リンクが変更になったので注意

改めてIUSの最新のURLでリポジトリーをインストールして、最新版のGit(v2.2.4)をインストールすることができた。

IUSリポジトリーのインストール

IUSのサイトからリポジトリーをインストールする。

IUSリポジトリーはデフォルトでオプションとするため、以下の設定ファイルのenable = 1enbale = 0に修正する。

vi等で5行目のenabled = 10に修正。

インストール可能なGitの確認

IUSリポジトリーをenableにしてインストール可能なGitをチェックしたところ、v2.22とv2.24がインストール可能。

旧バージョンのGitのアンインストール

Vagrantのbento/CentOS7には、v1.8.3のGitがインストール済みなので、まずこれを削除する。

最新版のGitのインストール

最新版のGit(v2.24)をインストール。

バージョン確認

バージョン確認。

 

Git – ローカル操作 – v1.8

概要

  • ワーキングディレクトリーの作成は、対象ディレクトリー直下でgit initを実行
  • ファイル・ディレクトリーの作成・変更・削除後のコミットの前に、git addでステージングが必要
  • ステージングのコマンドは、git add --all .
    • ただし削除の場合は--allオプションが必要
  • ステージングエリアの状態をコミットするには、git commit -m "コメント"でコメントを付して実行

Gitの初期設定

バージョン確認

Vagrant-bento/CentOS7の場合、少し古いがGitがインストール済み。

初期設定

git configコマンドでユーザー名とメールアドレスを設定。この結果カレントディレクトリーに.gitconfigファイルが作成され、内容が記述される。

必要に応じてGit実行時のカラー設定。

ワーキングディレクトリー

ワーキングディレクトリーの作成

~/git/testディレクトリーを作成し、そこに移動する。このディレクトリーをワーキングディレクトリーとする。

ワーキングディレクトリーの初期化

~/git/testディレクトリーでgit initを実行する。

この結果、リポジトリーのスケルトンとして.gitディレクトリーが作成される。

ステータス確認

ワーキングディレクトリー内でgit statusコマンドを実行してみる。

この段階でステージングエリアにファイルがあれば、それがコミット可能として表示される。しかし現時点ではワーキングディレクトリーの初期化直後なので、ステージングエリアにはコミット可能なファイルはない。ファイルを作成またはコピーして、git addするよう示唆されている。

また、ブランチはmasterとなっている。

ファイルの新規作成とコミット

初期化したリポジトリーに、新たにファイルを作成してコミットする。手順は以下のとおり。

  1. ワーキングディレクトリーにファイルを新規作成・コピーする
  2. ファイルをステージング(ステージングエリアに登録)
  3. ステージングエリアのファイルをコミット

ファイルの新規作成

“初めてのGit”という内容のテキストファイルsample.txtを作成する。まだステージングされていないことがgit statusで確認できる。

新規ファイルのステージング

作成したファイルをコミットする前に、そのファイルをステージングエリアに登録する必要がある。git add ファイル名でファイルをステージングエリアに登録する。

ワーキングディレクトリー下の対象ファイルを再帰的に全てステージングするにはgit add .とする。

git statusで確認すると、新たにsample.txtが登録されて、変更結果がコミット可能となっている。また、ステージングエリアからファイルを取り除くコマンドも示されている。

コミット

ステージングエリアのファイルをコミットするには、以下のコマンドでコメントを付けて実行。

git commit -m "コメント"

以下の例では、sample.txt"First file"というコメントを付けてコミットしている。コミット後のステータスは、コミットすべきファイルがない状態になっている。

コミットの結果はログに記録され、git logで確認できる。

ファイル編集とコミット

既作成のファイルを修正した場合のコミットの手順も新規作成と同じで、ステージング→コミットとなる。

ファイルの修正

先に作成したファイルに1行追加している。このままではステージングエリアに登録されていないことがget statusで確認できる。

ステージング

git addで変更後のファイルをステージング。

コミット

ファイルを変更した旨のコメントを付けてコミット。

ログには最初のコミット以降の一連の操作が記録されている。

ファイル削除とコミット

バージョン1.8のGitの場合、ファイルを削除した時のステージング/コミットに注意が必要。

ファイル削除

まずrmコマンドでファイルを削除する。

警告状態での流れ

新規作成・変更の時と同じgit addコマンドでステージングしてみると、以下のような警告が出る。

このバージョンでは--ignore-removalオプションがデフォルトで、ファイルを削除してもその内容は反映されない。

git statusで確認してみると、コミットの対象となる操作はステージングされていないことがわかる。

削除も反映/–allオプション

警告時のメッセージに従って、git add--allオプションを付加する。削除済みファイルを対象とするので"."を指定。

この結果、sample.txtが削除されたことがステージングされている。

この結果をコミットすると、無事sample.txtが削除される。