gitの基礎用語
ヘッド[HEAD]
- 今いるブランチの最新のコミットを指す。
- 「HEAD^」、「HEAD~」は直前のコミットを意味する。
- 「HEAD~{n}」は「n個前」のコミットを意味する。
ワーキングツリー[working tree]
- 今ローカルで作業している、コミットする前の状態。
インデックス(ステージ[stage])
- addして追加した状態のことを指す、コミットする前の状態。
ローカルリポジトリ[local repository]
- ファイルの変更履歴を記録(手元で管理)
リモートリポジトリ[remote repository]
- ファイルの変更履歴を記録(みんなで共有)
gitの操作
git log
- 各プロジェクトのコミット履歴を確認することができる。
git log オプション
- 「--oneline」オプションは各コミットを1行で出力する。
- 「--graph」オプションはブランチやマージの歴史を、log出力と共にグラフで表示する。
git status
- 全体の変更点を確認する。
- コードを修正したファイルをaddしていない、commitできるファイルがあるなどの確認ができる。
git diff
- addする前に変更点の確認ができる。
- 「--cached」オプションはaddした後に変更点の確認ができる。
- 「HEAD^」を付けることで今回コミットした変更点の確認ができる。
git diff HEAD..リモート名/ブランチ名
- pullする前にリモートとの変更点の確認ができる。
git diff リモート名/ブランチ名..HEAD
- pushする前にリモートとの変更点の確認ができる。
git add [ファイル名orディレクトリ]
- ファイルやディレクトリをインデックスに追加。
- インデックスに追加 = Git管理の対象に入れる。
git commit
- 追加・変更したファイルをGitに登録する。
- 「-m」オプションはcommitする際にコメントを記述することができます。
git config
- gitの設定をオプションを付けることで変更、確認する事ができる。
-「--global」、「--local」、「--system」オプションは範囲を指定する事ができる。
– system:システム全体の設定 – global:該当ユーザーの全リポジトリの設定 – local:該当のリポジトリのみ設定- 「--list」オプションは設定内容を確認できる。
git branch
- ブランチの一覧を表示と現在のブランチを確認できる。
- 「-a」オプションはブランチの詳細を確認できる。
git checkout ブランチ名
- 指定したブランチに移動する。
- 「-b」オプションは新しくブランチを作成してかつ作成したブランチに移動する。
- git checkout -b 新しいブランチ名 リモート名/ブランチ名
- リモートのブランチを指定して切り替える事もできる。
- ブランチ名にコミットIDを指定する事ができる。
git pull リモート名 ブランチ名
- リモートリポジトリの新しいデータをローカルリポジトリに取り込みかつリモートのブランチをマージする。
git fetch
- リモートリポジトリの新しいデータをローカルリポジトリに取り込む。
git push リモート名 ブランチ名
- リモートリポジトリにローカルの変更内容を送り込む。
git merge マージしたいブランチ名
- ブランチとブランチを繋げる。
git reflog
- HEADの移動履歴を確認できる。
git reflog <ブランチ名>
- そのブランチ先端が指していたコミットの一覧を確認ができる。
git reset
状態を取り消し、巻き戻すことができる。
「HEAD」はaddの状態を戻す
「--hard HEAD」はファイルの状態、add、commit全ての状態を戻す
「--mixed HEAD」はcommitとaddの状態を戻す。
「--soft HEAD」はcommitの状態を戻す。
ターミナルでgitを使いやすくする設定
- Git のバージョンを確認する
$ git version
- Appleのgitの場合は、homebrewのgitをインストール。
$ brew install git
便利な機能
- ターミナルでユーザーディレクトリに移動します。
$ cd
- 下記のコマンドで「git-completion.bash」 と 「git-prompt.sh」 のファイルがあることを確認する。
$ ls /usr/local/etc/bash_completion.d/
- 「.bash_profile」、「.bashrc」のどちらかのファイルを開いて編集する。
$ vi .bash_profile
- branch名を表示
.bash_profile
# ファイルに追加する内容
source /usr/local/etc/bash_completion.d/git-prompt.sh
source /usr/local/etc/bash_completion.d/git-comption.bash
GIT_PS1_SHOWDIRTYSTATE=true
PS1='\h:\W$(__git_ps1 "[\[\033[32m\]%s\[\033[0m\]]")\$ '
- 入力補完機能 有効
.bash_profile
# ファイルに追加する内容
if [ -f $(brew --prefix)/etc/bash_completion ]; then
. $(brew --prefix)/etc/bash_completion
fi
- 設定を反映する
$ source ~/.bash_profile