Open19
Gitコマンド
ローカルリポジトリの作成
git init
変更をステージに追加
git add <ファイル名>
git add <ディレクトリ名>
git add .
変更を記録(コミット)
git commit
git commit -m "メッセージ"
git commit -v
「-v」オプションはエディタでメッセージ編集できかつ変更内容を確認できる。
現在の変更状況を確認
git status
変更差分を確認
# git addする前の差分
git diff
git diff <ファイル名>
# git addした後の差分
git diff --staged
変更履歴を確認
git log
# 1行で表示
git log --oneline
# ファイルの変更箇所を表示
git log -p index.html
# 表示するログ数を指定
git log -n <コミット数>
ファイルの削除を記録
git rm <ファイル名>
git rm <ディレクトリ名>
# ファイルを残したい場合
git rm --cached <ファイル名>
「git rm」するとステージに上がるため、その後「git add」する必要はない。
ファイルの移動を記録
git mv <旧ファイル名> <新ファイル名>
# 以下のコマンドと同様の動き
mv <旧ファイル名> <新ファイル名>
git rm <旧ファイル名>
git add <新ファイル名>
「git mv」するとステージに上がるため、その後「git add」する必要はない。
リモートリポジトリを新規追加
git remote add origin https://github.com/xxxx
origin
はただの慣習的な名前のため、任意の別名をつけることも可能。
リモートリポジトリへ送信
git push origin master
「-u」オプションを付けると次回以降git push
だけでpushできる。
コマンドのエイリアス設定
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.br branch
git config --global alias.co checkout
--global
をつけるとシステム全体の設定として登録される。
--global
を省略した場合、そのプロジェクト内だけの設定として登録される
.gitignoreファイル書式
# 指定したファイルを除外
index.html
#ディレクトリ以下を除外
dir /
# ワイルドカードの指定
/*/*.css
変更を元に戻す
ワークツリーの変更を取り消す
# ファイルの変更を取り消す
git checkout -- index.html
# ディレクトリの変更を取り消す
git checkout -- dir
# 全変更を取り消す
git checkout -- .
ステージの変更を取り消す
# ファイルの変更を取り消す
git reset HEAD index.html
# ディレクトリの変更を取り消す
git reset HEAD dir
# 全変更を取り消す
git reset HEAD .
git reset
はワークツリーの変更には影響しない。
直前のローカルコミットをやり直す
git commit --amend
リモートリポジトリへpushしたコミットはやり直してはいけない。
リモートリポジトリの情報表示
git remote
#対応するURLを表示
git remote -v
リモートから情報取得(fetch)
git fetch origin
remotes/リモート/ブランチ
に情報が取得される。
最新をローカルリポジトリへ反映(merge)
git merge origin/master
リモートから情報を取得してマージする
git pull origin master
# 省略も可能
git pull
# 下記コマンドと同じ
git fetch origin master
git merge origin/master
ブランチの変更を退避
git stash
# 退避したstashリストを確認
git stash list
# 退避したstashを復元
git stash apply stash@{スタッシュ番号}
# 最新の退避した変更を復元
git stash apply
# 最新の退避したステージの変更を復元
git stash apply --index
# 退避した変更を削除
git stash drop stash@{スタッシュ番号}
# 最新の退避した変更を削除
git stash drop
# 全変更を削除
git stash clear