Git入門 part1 / Gitの基本
作った gem を Github に公開するために、Github の使い方を覚えておく必要があります😊
また、Github を使うために、まずは git の知識が必要になるようです。
ということで本日はサルでも分かるGit入門をやっていきます!
遠回りですみません😭😭
目次
1.入門編
1-1. Gitの基本
Git は、分散型バージョン管理システムのひとつです。
例えば社内サーバにおいて、Aさんがデータをサーバに保存し、後日Bさんが更新をして、更にCさんとDさんがそれぞれ編集して同時に更新したら、一方が消えてしまった…ということが起こりえます😖
Git では、データの状態を好きなときに更新履歴として保存して、過去の状態に戻したり、更新箇所を確認したりできるそうです!
ファイルやディレクトリの状態を保存する場所をリポジトリといいます。
状態を保存するということは、前回の保存状態との差分から、更新した内容を表示することもできます😊
リポジトリにはローカルとリモートの2つがあり、普段は個人がローカルリポジトリで作業を行い、作業が終わったら、他の人と共有するためにリモートリポジトリにファイルをアップロード(push)するということになります。
また、他の人が作成したファイルをリモートリポジトリから自分のローカルリポジトリにダウンロード(pull)することもできます。
また、ファイルやディレクトリの状態をリポジトリに記録する操作をコミットと言います。
コミットを実行すると、前回コミットした状態から現在の状態までの差分を記録したコミット(またはリビジョン)が作成されます。コミットは動詞でもあり名詞でもあるんですね〜!
また、コミットの実行時にはコミットメッセージを入力します。
Git のコミットメッセージの書き方は以下のとおりです💡
1行目 : コミットでの変更内容の要約
2行目 : 空行
3行目以降 : 変更した理由
そして、実際に作業するディレクトリをワークツリーと呼びます。
ワークツリーは Git の管理下にあり、ワークツリーとリポジトリの間にはインデックスというものがあります🔖
インデックスとは、ワークツリーで作業したファイルをリポジトリにコミットするための準備をする場所です。
コミットする時は、ワークツリーから直接リポジトリ内に状態を記録するのでなく、インデックスの設定に従って状態を記録します。
これにより、ファイル丸ごと全部をコミットしなくても部分的にコミットすることができます✨
1-2. チュートリアル1 Gitの基本
サルでも分かるGit入門のチュートリアルでは、Windows, mac(GUI), コンソールから環境を選べます。わたしはコンソールで進めていきます💪
まずは Git のインストールを行います!Homebrewをインストール済みなので、以下のコマンドでインストールしました🙂
$ brew install git
念のため以下のコマンドでバージョンを確認すると、2.20.1
でした👀
git -- version
次に Git の初期設定として、ユーザ名とメールアドレスの登録を行います。
リポジトリにコミットする際、履歴などに表示されるそうです😊
$ git config --global user.name "ユーザ名"
$ git config --global user.email "メールアドレス"
合わせてチュートリアルに従い、Gitの出力をカラーリングする設定と、checkout
コマンドに対するco
というエイリアスの作成をしました!
$ git config --global color.ui auto
$ git config --global alias.co checkout
コンソールの場合、コマンドでも設定変更できますが、設定ファイルを直接編集することもできます。
ホームディレクトリにある.gitconfig
を開いてみました!
先程の設定が反映されていますね😆
続いて、新規ローカルリポジトリの作成です。
ローカルリポジトリの新規作成は、リポジトリという特別なものを作るのではなくて、mkdir
でディレクトリを作成して、そのディレクトリをリポジトリに指定するという流れです。
ここでは、ホームディレクトリにtutorial
という名前のローカルリポジトリを作ります!
$ mkdir tutorial
$ cd tutorial
$ git init
空のリポジトリができました✨✨
では、リポジトリにファイルを登録します。
まずは、先程作った tutorial ディレクトリの中にsample.txt
というテキストファイルを作成します。
ファイルの中身のテキストは、チュートリアルに従いサルでもわかるGitコマンド
にします。
わたしは vim で作りました!
入力2のcat
コマンドでは、ファイルの中身を確認しているだけです😶
入力3のstatus
コマンドでは、Gitの管理下にあるディレクトリの、ワークツリーとインデックスの状態を確認しています💡
$ git status
ここでは tutorial ディレクトリのワークスペースとインデックスの状態を確認しています。
赤文字でsample.txt
となっているのは、インデックスによる履歴の追跡対象になっていないからです🙄
インデックスに登録すると、追跡対象に登録することができるので、インデックスに登録をします!
履歴の追跡対象としたいファイルをインデックスに登録するには、add
コマンドを使用します。
$ git add ファイル名
ファイル名はスペース区切りで複数指定することができます🌝
今はsample.txt
だけですね。
add
コマンドでsample.txt
を追加して、先程と同じくstatus
コマンドを実行すると、以下のようになります。
インデックスにsample.txt
が追加され、リポジトリへのコミットの準備ができました🎉
リポジトリにコミットするにはcommit
コマンドを使用します。
$ git commit -m コメント
コメントは"first commit"
としておきます✍️
これでコミットができると、先程のstatus
コマンドを実施しても変更履歴が無いはずですね〜☀️
また、変更履歴を確認できるlog
コマンドも実行してみたので、一連のキャプチャを貼ります!
面白いですね〜!!
複雑になってくるところを早く見てみたいです😆😆
2.用語のおさらい
今日は沢山専門用語が出てきたので、一覧にまとめました!
用語 | 意味 |
---|---|
repository | データの状態を保存する場所 作業用のローカルリポジトリと共有用のリモートリポジトリがある |
Push | ローカルリポジトリからリモートリポジトリにアップロードすること |
Pull | リモートリポジトリからローカルリポジトリにダウンロードすること |
commit | ファイルやディレクトリの追加・変更をリポジトリに記録する操作 |
worktree | 実際に作業をするディレクトリ |
index | リポジトリとワークツリーの間にあり、リポジトリにコミットするための準備をするところ |
今日は以上です😊