プログラミングを学習する上で欠かせないGitについて、基本的なバージョン管理の流れとそのコマンドをまとめます。
ブランチを切ったりコミットを取り消したりするところは別途まとめます。
バージョン管理の必要性
ファイルを作成し完成したら保存、そのファイルを修正して完成したら保存。それぞれ履歴として残しておく手段として、別のファイル名にして保存しておくことが考えられます。
(例)
- ファイル.txt
- ファイル2.txt
- ファイルnew.txt
- ファイル230101.txt
ファイル名の末尾に番号や名前、日付をつけることでファイルのバージョンらしき情報をつけられます。しかし、上記の例では、
- ファイル2とファイルnewはどっちが新しい?
- ファイルnewとファイル230101はどっちが新しい?
- 最終更新日はファイル.txtが一番新しいけど......
のような問題が起こります。
さらに複数人で同じファイルで作業した場合には......。
このような問題を解決するためにGitでは、
- ファイルの変更内容
- 変更履歴
- 変更した内容の概要
- 変更した人
などの情報を保存することができます。
さらに、ファイルを過去の状態に戻したり、複数人でファイルを変更したりすることも可能です。
用語
Gitでのバージョン管理に最低限必要な用語です。
リポジトリ
データとその変更履歴を保存するフォルダ。
ローカルリポジトリ
各自のローカル環境に存在するリポジトリ。各自のファイルの変更内容はまず、ローカルリポジトリに保存される。アクセスできるのは各個人のみ。
リモートリポジトリ
ネットワーク上に接続されたリポジトリ。有名なサービスとしてGitHubがある。ローカルリポジトリの内容を取り込んだり、逆にリモートリポジトリの内容をローカルリポジトリに反映させたりする。リモートリポジトリには複数人アクセス可能。
ワークツリー
各自のローカル作業環境。ここで変更したファイルをステージに登録する。
ステージ
ローカルリポジトリにプッシュする前の場所。データの変更箇所と変更履歴をコントロールするために、ステージに登録するファイルを選んでコミットする。
基本的なバージョン管理の流れ
Gitでバージョン管理は下記を繰り返すのが基本。
- 変更履歴を記録したいファイルをステージに登録する
- ステージに登録したファイルをコメントをつけてローカルリポジトリに保存(コミット)
- ローカルリポジトリの内容をリモートリポジトリに保存(プッシュ)
コマンド一覧
git init
Gitでバージョン管理する際に最初に行うコマンド。(initializeの略)
git add
変更ファイルをステージに登録。
git commit
ステージに登録したファイルをローカルリポジトリに保存。
git push
ローカルリポジトリの内容をリモートリポジトリに反映させる。
git status
gitでのバージョン管理状態を確認するコマンド。