Open15
Gitコマンド逆引き大全
ローカルリポジトリの作成
git init
git add *
git commit -m "comment"
リポジトリをクローン
git clone git@github.com:hukusuke1007/flutter_app_template.git
基本パターン
# ブランチ情報を確認
git branch -a
# ブランチ作成
git branch <ブランチ名>
# 例)git branch hoge
# 作成したブランチをチェックアウトする
git checkout <ブランチ名>
# 例)git checkout hoge
# 空コミットする(ローカル)
git commit --allow-empty -m "first commit"
# コミットする(ローカル)
git commit -a -m "comment"
# 指定のブランチへプッシュする(リモート)
git push origin <ブランチ名>
# git push origin hoge
# ブランチ名を変更
git branch -m <古いブランチ名> <新しいブランチ名>
# git branch -m hoge feat/hoge
# ブランチ名を変更(今開いているブランチを変更)
git branch -m <新しいブランチ名>
# git branch -m feat/hoge
# 古いブランチ名を削除
git push origin :<古いブランチ名>
# git push origin :hoge
# ブランチを変更したらリモートプッシュを忘れずに
# プッシュ(現在のブランチ)
git push origin HEAD
# プッシュ(ブランチを指定)
git push origin <新しいブランチ名>
# git push origin feat/hoge
マージする
# マージ先のブランチへcheckout
git checkout <マージ先のブランチ名>
# マージ先のブランチを最新にする
git pull origin <マージ先のブランチ名>
# マージする --no-ffオプション:fast-forwardの関係であっても、必ずマージコミットを作る
git merge --no-ff <マージしたいブランチ名>
# リモートリポジトリとの差分を確認する
git diff HEAD..<リモート名/ブランチ名>
# プッシュする
git push origin <マージ先のブランチ名>
特定のファイルだけをマージする
# 全部マージして特定のファイル以外は全てリセットする
git checkout <マージ先のブランチ名>
git merge --no-commit -Xtheirs <mergeしたいブランチ名>
git reset HEAD <mergeしたくないファイル名>
git checkout <mergeしたくないファイル名>
git commit
# 特定のファイルだけチェックアウトして取り入れる
git checkout <マージ先のブランチ名>
git checkout <マージ元のブランチ名> <取り入れたいファイル名>
コンフリクト解消
# コンフリクトしているファイルを確認
git status
#####################################
# エディタで手動でコードを編集して解消する
#####################################
# 編集して解消したコードをコミット対象にする
git add <ファイル名>
# コミットする
git commit
変更を退避する
# 変更したコードを退避
git stash save -u
# 退避したリストを取得
git stash list
# 退避したリストを反映させる
git stash pop
差分の確認
# 現在チェックアウトしているブランチと指定したブランチとの差分を確認
git diff --name-status <差分を確認したいブランチ名>
# リモートリポジトリとの差分を確認する
git diff HEAD..<リモート名/ブランチ名>
# 今回コミットした変更点を見る
git diff HEAD^
# コミット同士を比較する
git diff <変更前のハッシュ>..<変更後のハッシュ>
# ブランチ同士を比較する
git diff <ブランチA>..<ブランチB>
masterへプッシュ
# プッシュするファイルを追加
git add *
# コミット(ローカル)
git commit -a -m "comment"
# masterへプッシュする(リモート)
git push origin master
コミット対象から除く
# キャッシュから削除(ファイルは消えない)
git rm --cached <ファイル名>
# 削除(ファイルごと消える)
git rm <ファイル名>
コミットの取り消し
# コミットログ
git log
# ハッッシュIDから取り消す
git reset --hard <ハッシュID>
# 最新コミットの1件分のワークディレクトリを保持した状態でコミットを取り消す
git reset --soft HEAD~1
# 最新コミットの1件分のワークディレクトリとコミットを取り消す
git reset --hard HEAD~1
変更を元に戻す
git reset --hard
取り込み
# リモートリポジトリの情報を追加(リモートリポジトリのパスを指定)
git remote add origin https://github.com/hukusuke1007/FrontendTrainingKadai_1.git
# リポジトリの最新情報を追加
git fetch
# リポジトリの変更を取り込む(リモートリポジトリのパスを指定)
git pull https://github.com/hukusuke1007/FrontendTrainingKadai_1.git
ブランチ
# ブランチを確認
git branch -a
# ブランチ作成
git branch XXXX
# ブランチへ移動
git checkout XXXX
# ブランチ削除
git branch -d XXXX
# 現在のブランチ名を変更
git branch -m XXXX
# XXXXのブランチ名をYYYYへ変更
git branch -m XXXX YYYY
該当ファイルの差分を無視する方法
git update-index --skip-worktree [ファイル名]