【単語】
| 単語 | 説明 |
|---|---|
| ワークツリー | 作業環境(手元) |
| インデックス(ステージ) | コミット対象を置く場所 |
| リポジトリ | 変更履歴を記録する場所 |
| HEAD | 今自分が作業している場所を示すポインタ |
【よく使うコマンド】
| コマンド | 説明 |
|---|---|
| git init | 初期化 ロカールリポジトリ作成 |
| git add | インデックス(ステージ)への追加 |
| git add . | 全変更ファイルをステージへ反映 |
| git commit | リポジトリへの反映 |
| git commit -m "コミットメッセージ" | コミットメッセージと共にコミット |
| git reset ファイル | ステージへ追加されたファイルの取り消し |
| git diff | 変更点を確認 リポジトリとワークツリーの差分チェック |
| git diff -stage | リポジトリとステージの差分 |
| git diff 前のコミット番号 後のコミット番号 | コミット番号間の差分 |
| git status | 変更ファイルをチェック。ここに色々載っています。 |
| git log | 履歴の確認 |
| git checkout -b ブランチ名 | ブランチの作成 |
| git branch | 現在のブランチを確認 |
| git branch -m ブランチ名 | ブランチ名を変更 |
| git branch -d ブランチ名 | ブランチを削除(派生元から派生後、派生元へマージしていない場合削除されない) |
| git branch -D ブランチ名 | ブランチを削除(強制削除) |
| git checkout ブランチ名 | ブランチの切り替え。※-bオプションでブランチ作成も同時に行う。 |
| git switch ブランチ名 | git checkout ブランチ名と同じ |
| git restore ファイル名 | ワークツリーの変更を取り消す |
| git restore -staged ファイル名 | ステージに挙げた変更をワークツリーに戻す |
【GitコマンドTips】
- ブランチを横断したGrep
git grep '検索文字列' $(git list-remote . 'refs/remotes/*' | cut -f 2)
- コミット番号からブランチを検索
git branch -r --contains SHA-1の頭
- コミット番号から日付を見る
git show SHA-1の頭
【Git Flowについて】
| ブランチ | 説明 |
|---|---|
| master | 本番環境 |
| hotfix | 本番(master)のバグ修正。本番バングを早急にバグを修正するためのブランチ バグ修正が終わったらmasterとdevelopへ反映 |
| release | developから派生し本番(master)反映前にテストを行うブランチ。 テストがOKだったらmasterとdevelop両方へマージする |
| develop | masterと同じ状態を保つ。ステージング環境への反映用 |
| feature | 機能開発用。developから派生 |
【Gitコマンド練習】
1.Local Repository作成
作業フォルダに移動し、Gitローカルリポジトリを作成
git init
.git隠しフォルダが作成されていることを確認
ls -a
2.ファイル作成、初回コミット
ファイルを作成します。
touch index.html
以下のように編集しておきます。
(私は、ターミナルで完結できないかと慣れないviで編集してみました。)
<p>1行目</p>
<p>2行目</p>
<p>3行目</p>
状態を確認
git status
ワークツリーの編集内容をインデックス(ステージ)にします。
git add .
状態を確認
git status
初回コミット
※Author identity unknownのエラーが出た人はググって、設定を行ってください。(私は出ました。。。)
git commit -m "初回コミット"
状態を確認
git status
ログを確認してみる
git log
状態を確認
git status
3.ブランチ作成、ブランチでの編集とコミット
ブランチ作成(とブランチ切り替え)
git checkout -b "ブランチ名"
作成したブランチにいることを確認する
git branch
ファイルを編集する(4行目を追加する)
<p>1行目</p>
<p>2行目</p>
<p>3行目</p>
<p>four行目</p>
状態を確認
git status
インデックス(ステージ)に追加
git add .
状態を確認
git status
コミット
git commit -m "four行目追加した"
状態を確認
git status
ログを確認
git log
4.masterでの編集とコミット
ブランチ切り替え
git checkout "master"
masterブランチにいることを確認する
git branch
ファイルを編集する(4,5行目を追加する)
<p>1行目</p>
<p>2行目</p>
<p>3行目</p>
<p>4行目</p>
<p>5行目</p>
状態を確認
git status
インデックス(ステージ)に追加
git add .
状態を確認
git status
コミット
git commit -m "4,5行目追加した"
状態を確認
git status
ログを確認
git log
5.競合させてみる。競合を解決する。
git mergeでコンフリクトを発生させてみる
masterブランチにいることを確認し下記コマンドを実行します。
$ git merge feature
以下のようなメッセージが表示されると思います。
Auto-merging index.html
CONFLICT (content): Merge conflict in index.html
Automatic merge failed; fix conflicts and then commit the result.
index.htmlの中身は以下のようになっているかと思います。
=======から上のHEAD部分がmasterでの変更内容、=======から下のfeatureの変更内容になります。
<p>111</p>
<p>222</p>
<p>333</p>
<<<<<<< HEAD
<p>444</p>
=======
<p>four</p>
<p>five</p>
feature
以下のように修正します。
<p>111</p>
<p>222</p>
<p>333</p>
<p>444</p>
<p>five</p>
コミットします。
git add index.html
git commit -m "index.htmlのコンフリクト解消(master←featureへのマージ時)"
git statusやgit logで状況を確認してみてください。