前提
- masterブランチに対して複数人で開発作業をしている。
- フォークは禁止し、同一リポジトリ内で個人のブランチを作成する。
- masterへのmergeの際には必ずプルリクエスト→他の人の承認というフローを必要とする。
基本コマンド
※・・・普段の開発作業で特に頻繁に使用するコマンド
ToDo | Command | reference |
---|---|---|
プルリクエスト対象のブランチ確認 | (なし) | (Web操作) |
ローカルにファイルをダウンロード (masterブランチをダウンロード) |
git clone < URL > | |
※ git clone時master以外のリモートブランチをダウンロード | git clone -b <リモートブランチ名> < URL > | |
※ ローカルディレクトリ移動 | cd <ディレクトリパス> | |
※ 現在のブランチを表示する | git branch | (変数なし) |
他のリモートブランチを表示する | git branch -a | (変数なし) |
他のリモートブランチデータをダウンロードしそのブランチに切り替える | git checkout -b <ローカルブランチ名> origin/<リモートブランチ名> | ローカルブランチ名はリモートブランチ名と同じにすることを推奨 |
リモートブランチの最新情報(追跡ブランチ)取得するが反映はしない | git fetch | (変数なし) |
ローカルブランチを追跡ブランチの状態に同期 | git merge | (変数なし) |
※ git fetch + git merge | git pull | (変数なし) |
※ 現在のブランチを元に新規ローカルブランチを作成して移動する | git checkout -b <ローカルブランチ名> | |
※ 他のローカルブランチに移動する | git checkout <ローカルブランチ名> | |
ファイル追加 | git add <ファイル名> | |
※ 現在のディレクトリ配下の未登録ファイル・ディレクトリを登録 | git add . | (変数なし) |
ファイル・ディレクトリ登録消去&データ削除 | git rm <ファイル名> | |
指定したディレクトリ以下のファイル・ディレクトリ登録消去&データ削除 | git rm -r <ディレクトリ名> | |
ファイル・ディレクトリ登録消去&データ維持 | git rm --cached <ファイル名> | |
指定したディレクトリ以下のファイル・ディレクトリ登録消去&データ維持 | git rm --cached -r <ディレクトリ名> | |
※ 編集後の差分出力 | git diff | (変数なし) |
※ 編集後の差分と新規登録・消去した差分出力 | git diff --cached | (変数なし) |
※ 現在のブランチに変更を反映 | git commit -am "" | 【-a】変更のあったファイルすべてをコミット※ワーキングツリーからコミット 【-m】コミットにメッセージを添える |
※ 現在のローカルブランチを元にリモートブランチを新規作成 | git push -u origin <ローカルブランチ名> | |
※ リモートブランチをローカルブランチの状態に同期 | git push | (変数なし) |
整理や失敗したときに使うコマンド
ToDo | Command | reference |
---|---|---|
コミットを一つ取り消す。ファイルも元に戻す | git reset --hard HEAD^ git reset --hard "HEAD^" |
Windowsの場合、^が特殊記号扱いになるため引用符で囲む |
コミットを一つ取り消す。ファイルはそのまま | git reset --soft HEAD^ git reset --soft "HEAD^" |
Windowsの場合、^が特殊記号扱いになるため引用符で囲む |
コミットをn回取り消す。ファイルも元に戻す | git reset --hard HEAD~n | |
コミットをn回取り消す。ファイルはそのまま | git reset --soft HEAD~n | |
git reset後の強制push | git push -f | |
コミット履歴(概要) | git log | |
コミット履歴(詳細&直前2エントリ) | git log -p -2 | |
直前のコミットを打ち消すコミット | git revert HEAD | |
特定のコミットを打ち消すコミット | git revert [ commit ID ] | |
リモートブランチでローカルブランチを強制上書き | git fetch origin <リモートブランチ名> git reset --hard origin/<リモートブランチ名> |
git pullに強制モードは存在しないため、こちらの手順が必要 |
不要なローカルブランチを削除する(マージしたか確認あり) | git branch --delete <ローカルブランチ名> | |
不要なローカルブランチを削除する(マージしたか確認なし) | git branch -D <ローカルブランチ名> | |
不要なリモートブランチを削除する | git push --delete origin <リモートブランチ名> git push origin :<リモートブランチ名> |