【44で初心者で】やってみよう! はじめてのGit

「Git」「GitHub」「GitLab」。おそらく「ざるそば」「もりそば」「せいろそば」のような似たようなものなのかな?・・・ぐらい無知だった私が「Git」について勉強しさわってみたことを公開させて頂きます。
2020.11.02

「Git」「GitHub」「GitLab」。おそらく「ざるそば」「もりそば」「せいろそば」のような似たようなものなのかな?・・・ぐらい無知だった私が「Git」について勉強しさわってみたことを公開させて頂きます。

はじめに

こんにちは、上山(かみやま)です。
むかーしむかしSEの端くれだった頃、主にUNIXを主戦場にしていたこともありバージョン管理はCVS、時々VSS、たまにRCSのような感じで利用することが多く、Eclipse(3.0か3.1)を触り始めていた頃にもGitについては全く利用経験がありませんでした。
そんなGit初心者が弊社内のチョットした会話の中からGitを勉強する機会を得ましたので実際に触って勉強していきたいと思います。
同じようにこれからGitを覚えようと考えている方の参考になれば幸いです。

今回の目標

「Gitやってみるぞ!」と言っても初心者はじゃあ何からやればいいんだろう?ってなりますよね。
私もその一人ですが、事前に弊社の方々から参考になる書籍やサイトの情報を教えてもらいました。
今回はGitのインストール、ローカルリポジトリの作成、ファイルのコミットとGitをさわれる環境を準備するところまでやってみたいと思います。
サイト『サル先生のGit入門』はプロジェクト管理ツール「Backlog」を利用したGitの操作についてわかりやすく丁寧に解説されているのですが、今回やってみる部分については初歩の初歩で「Backlog」がなくてもできる部分ですので参考にさせてもらいました。

Gitとは

まずはGitについて簡単に説明します。 (『サル先生のGit入門』より引用)

Gitとは、分散型バージョン管理システムの一つで、もともとLinuxのソースコードを効果的に管理するために開発されました。 Gitでは、ファイルの状態を好きなときに更新履歴として保存しておくことができます。そのため、一度編集したファイルを過去の状態に戻したり、編集箇所の差分を表示したりすることができます。 また、古いファイルを元に編集したファイルで、他人の編集した最新ファイルを上書きしようとすると、サーバにアップロードした時に警告が出ます。そのため、知らず知らずのうちに他人の編集内容を上書きしてしまうといった失敗は起こりません。

よくファイル名に「日付」や「最終版」「最新版」「確定版」などがついていたりしてどれが最新のファイルなんだっけ?ということになったことがあるのではないでしょうか。(私はあります)
Gitでファイルを管理すればもう「最新のファイルどれだっけ?」ってことはなくなりますね。

やってみた『Gitの基本』

それでは、『サル先生のGit入門 チュートリアル1 Gitの基本』に沿ってやってみたいと思います。
環境は
 OS :Windows
 Git :Version 2.29.1
になります。
コマンドを覚える意味でもGitクライアントはインストールせずにコンソールでやっていきましょう。
宜しくお願いしまーす。

今回Gitを学んでいく上で一部のGitコマンドをさわってみましたので一覧にしてみました。
「clone」「pull」「push」などコマンドはまだまだ沢山ありますので少しずつ覚えていきたいですね。

Gitコマンド 説明
git --version gitのバージョンを確認する
git config --global user.name "ユーザ名" ~/.gitconfigへユーザ名を設定する
git config --global user.email "メールアドレス" ~/.gitconfigへメールアドレスを設定する
git config --global color.ui auto git statusなどの出力をカラーリングして見やすくする
git config --global alias.co checkout ~/.gitconfigへエイリアスにコマンド「checkout」の別名「co」を設定する
git config --list configの設定内容を確認する(system、global、local全ての中身)
git config --global core.quotepath off gitの出力を日本語で表示できるようにする
git init リポジトリを登録する(カレントディレクトリ)
git status ワークツリーとインデックスの状態を確認する
git add "file".. ファイルをインデックスへ登録する
git commit -m "コメント" ファイルをコミットする(コメント付き)
git log リポジトリの変更履歴を確認する

インストール

それでは「http://git-scm.com/」からGitをダウンロードします。

インストール開始まで結構な設定画面数があります。
基本的に「デフォルト」で設定していますが、必要により環境・利用方法に合わせた設定に変更してください。

インストールするコンポーネントについて設定します。
デスクトップにアイコンを置くかとかを追加で設定できますが今回は「デフォルト」です。

エディターは「Visual Studio Code(VS Code)」を選択してみました。
ただ今回は「Git Bash」を利用しますので「VS Code」は触りません。「VS Code」にはGit用の拡張機能が用意されていますので今後「VS Code」を使ったGit操作も勉強していきたいと思います。
ちなみに私が「VS Code」を利用しているのは前職で同僚から”VS Codeめっちゃいいよ”とおすすめされたからなのですが、ただのテキストエディタとしてしか利用していなく、まさに「豚に真珠」です。
個人的にはvi好きなので「Vim」使ってみようかなぁなんて思ったりもしています。

最初に作るブランチ名を設定できるんですが、やっぱり「デフォルト」でいきます。

チェックアウト、コミットする際の改行コードをどうするかの設定ですが、ここも「デフォルト」で。

コンソールの種類を選択できるみたいですね。触ったことないですし「デフォルト」ですね。

「pull」の方法を選択できるみたいですが、今回はまだ「pull」しないですし「デフォルト」にしときましょう。

やっと設定が終わり、いよいよインストールです。

インストールが終わったら確認の為、「Git Bash」を起動してバージョン確認してみましょう。

$ git --version

問題なくインストールしたバージョンが表示されると思います。

初期設定

初期設定としていくつか「Git Bash」で設定していきます。
まずは、ユーザー名とメールアドレスを設定します。

$ git config --global user.name "ユーザ名"

$ git config --global user.email "メールアドレス"

次にGitの出力をカラーリングする設定をおこないましょう。

$ git config --global color.ui auto

ーー画像

お次はエイリアスにコマンド「checkout」を「co」と略せるように設定します。
残念ながら今回の作業の中では「co」は使いません。

$ git config --global alias.co checkout

設定内容が登録されているか確認してみましょう。
設定した内容が表示されると思います。

$ git config --list

補足:日本語表示の設定

Windows環境の場合、日本語はデフォルトでは文字化けしてしまいますので表示できるように設定します。
用意した「テスト.txt」が日本語で表示されるようになりました。

$ git config --global core.quotepath off

新しいリポジトリを作成してみる

さて、必要な設定も終わりましたのでローカルリポジトリを作成してみましょう。
まずはリポジトリ用のディレクトリを作成し、そのディレクトリへ移動します。

用意したディレクトリをリポジトリとして登録します。

$ git init

ファイルをコミットしてみる

コミットするファイルを用意してリポジトリの場所に保管します。
今回は合わせてコミットしないファイルも用意してみました。
 「test.txt」 ・・・ コミットしてみるファイル
 「テスト.txt」・・・ コミットしないファイル

まずはコミットする前にディレクトリの状態を確認してみましょう。

$ git status

それではコミットするファイルを登録します。今回は「test.txt」を登録してコミットしていきます。

$ git add "file"..

ファイルをリポジトリへコミットしてみます。コミットの際にコメントも登録できるのでコメントを入れてみましょう。

$ git commit -m "コメント"

無事、コミットできましたのでリポジトリの変更履歴を確認してみます。

$ git log

補足:gitk

gitインストールの際に同時に「gitk」というGUIツールもインストールされていますので触ってみました。
リポジトリの状態が「gitk」でも確認できると思います。

まとめ

今回の学習ではローカルリポジトリを作成してファイルをコミットしてみました。まだ分散型バージョン管理システムを体感することは出来ていませんが、Gitを使っていく上での準備運動ぐらいは出来たかなと思っています。
クローン、プル、プッシュ、ブランチ、マージ、コンフリクトなどGitのことを調べるとよく出てくる言葉について体験していませんのでこれからどんどんGitを試していってその時の気づきやしくじりを公開できればと思います。
同じようにこれからGitを覚えようとしている方の参考になれば幸いです。