【単語】
単語 | 説明 |
---|---|
ワークツリー | 作業環境(手元) |
インデックス(ステージ) | コミット対象を置く場所 |
リポジトリ | 変更履歴を記録する場所 |
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
で状況を確認してみてください。