仕事で頻繁に使うGitのコマンドを纏めたものです。
分かりやすいように分類ごとに纏めてみました。ご活用ください。
Gitのコマンド一覧
基本(ブランチ操作)
git branch |
ローカルで作成されているブランチの一覧を確認 |
git branch -a |
リモートとローカルのブランチの一覧を確認 |
git checkout ブランチ名 |
ローカルにある別のブランチに移動 |
git branch -d ブランチ名 |
ローカルのブランチを削除 |
git branch -D branch_name |
ブランチを強制削除 (マージしてないから消せないなどのエラーが出た場合に有効) |
git fetch |
リモートの最新ブランチ情報を取得する。 |
基本(コミット操作)
git add ファイル名 | コミットする対象のファイルを追加 |
git add . | 変更した全てのファイルをコミットする対象に追加 |
git diff | git addしていないファイルの差分を確認 |
git status | addしたファイルと、変更したけどaddしていないファイルを確認 |
git rm ファイル名 | git addしたけど、取り消したい場合
または、リモートのファイルを削除したい場合に利用 |
git commit | git add したファイルの差分を正式なコミットとして登録 |
git commit -m "コメント" | コミットする時に、コメントを追加 |
git commit --amend | 1つ前のコミットのメッセージの内容を修正する |
基本(リモートブランチ関連)
git push -u origin ブランチ名 | ローカルのコミットした内容をリモートへ反映させる |
git push -u -f origin ブランチ名 | ローカルのコミットした内容を強制的にリモートへ反映させる。 |
git pull | リモートブランチの更新をローカルブランチに取り込む。 |
git reset --hard ブランチ名 | git pullがエラーになる場合、かつリモートが正しい場合、
リモートの内容でローカルを強制的に合わせる。 |
git pull --rebase origin マージ先ブランチ名 | マージ先のブランチが存在する場合に、マージ先の最新の情報を
取り込む。 |
git reset --hard ORIG_HEAD | 更新前のブランチの情報に戻す エラーの対応で編集を誤ってしまったときなどに、このコマンドで編集前の状態に戻れる。 |
基本(その他)
git remote -v | GitのURLを確認したい |
git config --global user.email "miyahuji@example.com"
git config --global user.name "miyahui" |
Gitの設定:アカウント情報を登録 |
git config --global -l | Gitの登録情報(name/mail等)を確認 |
Gitコマンド 応用編(シーン毎)
実際のケース毎にコマンドを纏めてみました。
ローカルブランチを削除し、リモートの最新版をチェックアウト
"ローカルブランチの編集に失敗した時"や、やり直したい時に利用。
git reset --hard でも良い。
削除したいブランチにいる場合は、別のブランチに移動
[crayon-66308b7ef0ff5801517450/]
などのエラーが表示される場合は
git reset --hard ORIG_HEAD
を実行すると解消される。
ローカルGit環境のブランチを削除
git branch -D branch名
リモートの最新の情報を取得し、チェックアウト
git fetch
git checkout branch名
これで、作業前(リモートの状態)に戻し、一から編集作業をやり直すことができます。
強制的に「git reset --hard ブランチ名」を実行しても結果は同じとなります。
PRまでに必要な操作
ローカルでファイルを修正した後は以下の操作を行うことでリモートの更新が可能。
また、ファイルの修正を行う前にgit pull
コマンドでローカルを最新の状態にするようにしましょう。
git add -u 対象ファイル
(例) git add -u /home/git/test.py
git commit -m "コメント"
(例)git commit -m "update test"
git push -u origin ブランチ名
(例)git push -u origin develop
これで、ローカルでaddしたファイルがリモートに追加(更新)されます。
リモートから最新のソースコードがチェックアウトできない
最新のリモートのデータをローカルに落としていない可能性があります。
以下のコマンドを実行し、リモートのファイルをローカルに落としておきましょう。
git fetch origin
それでもローカルが書き換わらない場合は、強制的にリモートの情報をローカルに適用しましょう。
git reset --hard origin/ブランチ名
今までのコミットのコメントを整理する。(纏める)
コミットログを確認する
git log --oneline
実行例
$ git log --oneline
d07afa1 テスト実装
14461c2 不具合修正
e187133 リファクタ実施
d39ebb4 最終版
コミットログを纏める(pick を f or fixup とする)
以下コマンドを実行し、過去のコミットを整理する。
末尾の数字は表示するコミットの数を指定する。今回は4件を1件に纏めるため、5を指定。
新しいものから順に pick
を f
またはfixup
とする。
git rebase -i HEAD~5
【変更前】
pick d07afa1 テスト実装
pick 14461c2 不具合修正
pick e187133 リファクタ実施
pick d39ebb4 最終版
【変更後】
pick d07afa1 テスト実装
f 14461c2 不具合修正
f e187133 リファクタ実施
f d39ebb4 最終版
編集が完了したら
:wq
で保存して、抜ける。
コメントは分かりやすいものに修正
git commit --amend
#git commit --amend
テスト実装
を
機能Aの実装
など、何を追加したか分かりやすい文章に変えよう。