【Git】基本知識
Gitとは
分散型バージョン管理システムと呼ばれるツール。
コードを複数人で共有し、変更履歴を管理できる。
バージョン管理システムの特徴
- ファイルの変更履歴を残せる
- 変更履歴を共有できる
- 以前のバージョンに戻せる
Gitの仕組み
以下の用語がある。
- リポジトリ
- リビジョン
- ブランチ
- コミット
- インデックス(ステージングエリア)
- ワーキングディレクトリ
- ローカルリポジトリとリモートリポジトリ
- プッシュ
- プル
1. リポジトリ
ファイルやプログラムの変更履歴を保存する倉庫のようなもの。
.git
というディレクトリにリポジトリを管理するための必要なデータが保管されている。
2. リビジョン
リポジトリにためていく変更履歴のこと。コミットログともいう。リビジョンには、どのファイルがいつ変更されたかや、誰が変更したかなどの情報が含まれる。
3. ブランチ
プロジェクトを進めるために作業をわけるためのもの。例えば、新しい機能を追加するブランチや、バグを修正するためのブランチなどがある。ブランチを切り替えると、それぞれの作業が互いに干渉せずに進められる。
4. コミット(commit)
ファイルの変更をリポジトリに保存すること。変更をコミットすると、その時点の変更内容が記録される。コミットには、どのファイルが変更されたのかや、変更の目的をメモとして残すことができる。
5. インデックス(ステージングエリア)
コミットするためのファイルのリストを作る場所。準備室のようなもので、コミットに含めたいファイルを一時的に置いておく。コミットする前に、インデックスに登録(add)されたファイルだけがコミットの対象となる。
6. ワーキングディレクトリ
プロジェクトのファイルが保存されているフォルダやディレクトリのこと。作業現場のようなもので、ここでファイルの編集や追加、削除などを行い、変更内容を記録することができる。
7. リポジトリ
リポジトリの種類 | 説明 | 目的 |
---|---|---|
ローカルリポジトリ | ローカル環境にあるリポジトリ | 自分のパソコンでバージョン管理するため |
リモートリポジトリ | インターネット上にあるリポジトリ | 複数の人が共有し、協力してバージョン管理するため |
8. プッシュ
自分のローカルリポジトリの情報をリモートリポジトリに送ること。ワーキングディレクトリで指定しているブランチ(作業の場所)の内容を、リモートリポジトリの指定したブランチに反映させることができる。
9. プル
リモートリポジトリの最新の情報を自分のパソコンに取り込むこと。他の人が行った変更や追加したファイルなどを自分の環境に反映させることができる。
基本コマンド
Gitの一般的なコマンド一覧。
コマンド | 使い方 | 解説 |
---|---|---|
git init |
git init |
リポジトリの初期化を行う。新しいプロジェクトをGitでバージョン管理するための準備。 |
git status |
git status |
現在の作業ディレクトリの状態を表示。変更があるファイルやステージングエリアの状態を確認できる。 |
git add |
git add ファイル名 |
変更したファイルをステージングエリアに追加する。コミットする前に変更を含めるファイルを指定。 |
git commit |
git commit -m "コミットメッセージ" |
ステージングエリアに追加された変更をコミット。コミットメッセージは変更の内容を記述。 |
git log |
git log |
コミットの履歴を表示。過去のコミットメッセージや変更内容、コミットした日時などが表示される。 |
git remote |
git remote add origin リモートリポジトリURL |
リモートリポジトリを追加。複数のリモートリポジトリを管理する場合に使用。 |
git push |
git push origin ブランチ名 |
ローカルリポジトリの変更をリモートリポジトリに反映。指定したブランチに変更内容を送信する。 |
git branch |
git branch git branch ブランチ名
|
ブランチの一覧を表示。新しいブランチを作成することもできる。 |
git diff |
git diff |
変更内容を表示。ステージングエリアと作業ディレクトリの差分やコミット間の差分を確認できる。 |
git reset |
git reset コミットID |
コミットを取り消し、変更を元に戻す。指定したコミットIDまで戻すことができる。 |
git checkout |
git checkout ブランチ名 |
ブランチを切り替える。指定したブランチに移動して、そのブランチでの作業を開始する。 |
git clone |
git clone リポジトリURL |
リモートリポジトリの内容をローカルにコピーする。既存のリポジトリを取得して新しいディレクトリを作成する。 |
git fetch |
git fetch |
リモートリポジトリから最新の変更履歴を取得するが、現在のブランチには反映されない。 |
git merge |
git merge ブランチ名 |
別のブランチの変更を現在のブランチに統合(マージ)する。異なるブランチ間の変更を組み合わせることができる。 |
git rebase |
git rebase ブランチ名 |
現在のブランチのコミットを、指定したブランチの最新コミットの後ろに移動させる。コミットの履歴を整理することができる。 |
git pull |
git pull origin ブランチ名 |
リモートリポジトリの最新の変更を取得し、ローカルリポジトリにマージする。git fetch とgit merge を組み合わせた操作。 |
参照
チーム開発はみんなでわからないことを共有したり、できたら見せ合ったりして楽しい雰囲気で進められています♪
教え合うこともまた学びになる。自分がどこがわからなく、言語化して説明できないのが明確になるのでありがたい
Discussion