もう怖くないGit!チーム開発で必要なGitを完全マスター セクション3復習
セクション3:Gitの仕組みと基本的なコマンド
Gitの基本的な仕組みを知ろう
Gitはバージョンをスナップショットで記録する
差分で記録していると、ブランチやマージに時間が掛かってしまう
ファイルを丸ごと保存することで、複数人での開発スピードがアップする
スナップショットで記録することで元の状態に戻せる
- コミットでバージョンを記録する
- コミットを辿ることで最新から過去の状態に戻せる
Gitの操作の流れを掴もう
Git全体の操作の流れ
ローカルの作業の流れ
- ワークツリーからステージに移動
- ステージからリポジトリに記録
※ステージはコミットする変更を準備するエリア
Gitってどのようにデータを管理しているの?
Gitのデータ構造(コミットまでの流れ)
新しいファイルを追加・ファイルを変更した場合
- コミットファイルに直前のコミット情報を記録することでコミットを辿れる
Gitのデータ構造のまとめ
- Gitはデータを圧縮して、スナップショットで保存している
- Gitのコマンドはそのデータに対して色々な操作をしている
Gitを始めよう
GitHub上にあるプロジェクトから始めよう
変更をステージに追加しよう
git add
- ファイル名・ディレクトリ名を追加
-
git add .
で全ての変更をステージに追加
- ステージはコミットする変更を準備するために必要で、記録したい変更だけをコミットするための機能
変更を記録しよう
git commit
git commit -m "コメント"
...gitのエディターを起動させずにコメントを記載してコミットgit commit -v
...ファイルの変更状況を確認してコミット
- コミットメッセージ
- 簡単に書くとき
- 変更内容の要点と理由を1行で簡潔に書く
- 正式に書くとき
- 1行目:変更内容の要約
- 2行目:空行
- 3行目:変更した理由
- 簡単に書くとき
現在の変更状況を確認しよう
コミットやステージに追加する前にどのファイルが変更されたかを確認する癖をつける
- まだコミットすべきでないファイルや変更途中のファイルもコミットしてしまうことを防ぐため
- 必要な変更だけコミットするため
git status
- ワークツリーとステージ、ステージとリポジトリを比較して変更があったファイルを表示する
何を変更したのか確認しよう
git diff
- ワークツリーとステージとの変更差分を表示する(git addの前)
git diff --staged
...ステージとリポジトリの差分を表示する
- ステージに追加やコミットする前は何の変更を追加するのか確認する癖をつける
変更履歴を確認する
git log
git log --oneline
...1行で表示git log -p ファイル名
...ファイルの変更差分を表示git log -n コミット数
...表示するコミット数を制限して表示
ファイルの削除を記録しよう
ファイルの移動を記録しよう
git mv 旧ファイル 新ファイル
- ファイル名を変更して、ステージに記録する
- 古いファイルを削除して、新しいファイルを追加する
GitHubにpushしよう
- push...ローカルリポジトリの変更をリモートリポジトリに反映すること
git remote add origin GitHubのurl
- 以後originという名前でGitHubにアップしたり取得できる
git push リモート名 ブランチ名
git push -u
...リポジトリ、ブランチの引数を省略できる、正確にはローカルブランチが更新を追いかけるリモートブランチ(上流ブランチ)を登録する
コマンドにエイリアスを付けよう
- エイリアス...別名
- コマンドの入力を短縮して入力を楽にする
git config --global alias.省略名 コマンド名
git config --global
...PC全体の設定を変更する(--globalがない場合はプロジェクトのみ適用)- ~/.gitcongや~/.config/git/configを変更する