今週は、いままで考えてきたプログラミング学習サイトのまとめ資料の作成と、資料をGit Hubにアップするために、Gitコマンドの復習をしました。
それ以外で、今週の進捗はないため、私がよく使うGitコマンドをまとめようと思います。
Gitコマンドのまとめ
使ってないと忘れそうなので、復習したGitコマンドをまとめてみました。
[ ] は、任意で入力することを示しているため、コマンドとして、記号の[ ] は入力する必要はありません。
コマンド | オプション等 | 説明 |
git config --global user.name ["名前"] | ユーザー名の確認、""内でユーザー名を記述するとユーザー名の登録ができる | |
git config --global user.email ["メールアドレス"] | e-mailの確認、""内でe-mailを記述するとe-mailの登録ができる | |
git init | 現在のディレクトリがgit管理される | |
git add ファイル名 | 指定したファイル名をステージングエリアに追加する | |
git add . | ワークツリーのすべてのファイルをステージングエリアに追加する | |
git add | -u | 一度addされたことがあるファイルの変更をステージングエリアに追加する。 |
git ls-files | ステージングエリアに入っているファイルのリストを表示する | |
git commit | ステージングエリアに入っているファイルをコミットする。 エディタが開くため、コミットメッセージを入力する。 ※複数行のメッセージを入力する場合に使用している。 | |
git commit | -m "XXX" | -mはメッセージを入力するためのオプションで、続けてメッセージを入力する。 ※メッセージが短い場合などはこちらを使用している。 |
git commit | -a | git addとgit commitを一度に行う場合のオプション。 git commit -a -m "メッセージ" と入力すると一度でコミットを行うことができる。 |
git log | コミット履歴を表示する。 「q」で表示を終了する。 | |
git log | --stat | 追加や削除の細かい情報もログに表示する。 |
git log | --oneline | ログを1コミット1行で表示する。 |
git log | --graph | ブランチの分岐などをわかりやすく表示する。 |
git log | --all | 現在HEADのブランチからのログではなく、すべてのログを表示する。 |
git reflog | Gitの操作履歴を表示する。 | |
git status | バージョン管理対象外、未add、未コミットのファイルを表示する。 | |
git diff | ワークツリーとステージングエリアのソースコード差分を表示する。 | |
git diff | --cached | ステージングエリアとHEADのソースコード差分を表示する。 |
git diff | HEAD | ワークツリーとHEADのソースコード差分を表示する。 |
git rm ファイル名 | 指定したファイル名のファイルをステージングエリア、ワークツリーから削除する。 ※コミットされていないファイルが含まれている場合は、-fオプションを使用することで削除できる。 | |
git rm ファイル名 | --cached | 指定したファイル名のファイルをステージングエリアから削除する。 ※ワークツリーから削除したくない場合はこちらを使用する。 |
git rm | -r ディレクトリ名 | ディレクトリをステージングエリア等から削除する場合は、-rを付ける。 その他は、ファイル名のときの同様。 |
git mv 変更前ファイル名 変更後ファイル名 | ワークツリーまたはステージングエリアにて、変更前ファイル名から変更後ファイル名に変更する。 ※Git管理されていないファイルは、通常のmvコマンドで変更可。 ※LINUXのmvコマンドと同様の使い方 | |
git branch | 既存のブランチの一覧を表示する。 ※アスタリスクの付いているブランチがHEADとなる。 | |
git branch ブランチ名 | 現在のHEADをもとに指定したブランチ名のブランチを新規作成する。 | |
git branch | -d ブランチ名 | ブランチ名のブランチを削除する。 |
git branch | -D ブランチ名 | ブランチ名のブランチを削除する。 ※最新のコミットがマージされていないブランチなどで、-dオプションでは削除できない場合、こちらで強制的に削除できる。 |
git branch | -m 現ブランチ名 新ブランチ名 | 現ブランチ名から新ブランチ名にブランチ名を変更する。 |
git checkout ブランチ名 | 現在のブランチを指定したブランチ名のブランチに切り替える。 | |
git checkout | -b ブランチ名 | ブランチを新規作成して、ブランチ名のブランチに切り替えを1度に行うことができる。 |
git merge ブランチ名 | 現在のブランチに指定したブランチ名のブランチをマージする。 | |
git reset コミット | 指定したコミットまでHEADとブランチを移動し、それ以降に存在したコミットは時間が経つと削除される。 ※ステージングエリアに移動先のHEADの内容がコピーされる。 | |
git reset | --hard コミット | 指定したコミットまでHEADとブランチを移動し、それ以降に存在したコミットは時間が経つと削除される。 ※ワークツリーと、ステージングエリアともに移動先のHEADの内容がコピーされる。 |
git reset | --soft コミット | 指定したコミットまでHEADとブランチを移動し、それ以降に存在したコミットは時間が経つと削除される。 ※ワークツリーとステージングエリアはそのままで、HEADとブランチのみが移動される。 |
git revert コミット | 指定したコミットがなかったときの状態に戻し、コミットを行う。 ※コミットメッセージを入力する必要がある。 | |
git revert コミット | --no-edit | 指定したコミットがなかったときの状態に戻し、コミットを行う。 ※コミットメッセージを編集しない。(定型のコメントのみ) |
git revert コミット | -n | 指定したコミットがなかったときの状態に戻すが、コミットまでは行わない。 |
git tag タグ名 | HEADが指しているコミットにタグ名を付ける。 | |
git tag | 設定されているタグの一覧を表示する。 | |
git tag | -n | 一覧に注釈も表示する。 |
git tag タグ名 コミット | 指定したコミットにタグ名を付ける。 | |
git tag | -a タグ名 -m "XXX" | タグ名に注釈を付ける。 |
git tag | -d タグ名 | 指定したタグ名を削除する。 |
git stash | ワークツリーとステージングエリアの変更を一時的にスタックに退避する。 | |
git stash | list | スタックに退避させたリストを表示する。 |
git stash | pop | スタックに退避したワークツリーとステージングエリアの変更を取り出す。 |
GitHub関連コマンドまとめ
GitHub専用コマンドというわけではありませんが、GitHubでよく使うコマンドを別で表にまとめました。
コマンド | 説明 |
git clone アドレス | リモートリポジトリのアドレスを指定すると、指定したリモートリポジトリのコピーが現在のローカルディレクトリに作成される。 |
git remote | 存在するリモートリポジトリを一覧表示する。 |
git remote prune リモート名 | リモート名のリモートリポジトリのリモート追跡ブランチをローカルリポジトリから削除する。 |
git push リモート名 ローカルブランチ名[:リモートブランチ名] | リモート名のリモートリポジトリにローカルブランチ名のローカルブランチをリモートブランチ名のリモートブランチにpushする。 ※ローカルブランチとリモートブランチの名称が同じなら、:リモートブランチ名は省略可能です。 ※git pushのみの場合は、HEADが指しているローカルブランチの上流ブランチにpushされる。 |
git push -u リモート名 ローカルブランチ名[:リモートブランチ名] | -uオプションを付けると、上流ブランチを設定してpushができる。 これ以降、リモート名を指定しなくてもpushが行えるようになる。 |
git push --delete リモート名 リモートブランチ名 | リモート名のリモートリポジトリのリモートブランチ名のブランチを削除する。 |
git branch -a | ローカルに存在するリモート追跡ブランチもブランチ一覧に表示される。 |
git fetch リモート名 [リモートブランチ名] | リモート名のリモートリポジトリのリモートブランチ名のブランチをローカルリポジトリに反映する。 ※ローカルリポジトリは、リモートリポジトリの内容を反映するが、HEADは移動しないため、ブランチの変更は行われない。 ※リモートブランチ名を省略した場合は、リモート名のリモートリポジトリのすべてのブランチをローカルリポジトリに反映されます。 ※git fetchのみの場合は、HEADが指しているローカルブランチの上流ブランチにfetchされる。 |
git pull リモート名 リモートブランチ名 | リモート名のリモートリポジトリのリモートブランチ名のブランチをローカルリポジトリに反映し、ローカルリポジトリのブランチもマージされる。 |
git cherry-pick ブランチ名 | 現在のブランチにブランチ名のブランチをマージする。 ※mergeコマンドのようにマージ元のポインタを持たない。 ※ブランチ名にコミットID指定可能 |
git cherry-pick -n ブランチ名 | -nオプションを指定すると、コミットの内容は取り入れるが、自動マージは行わない。 |
git rebase 元にするブランチ名 | 現在のブランチの開始元を元にするブランチ名の位置を開始元に変更するために、元にするブランチとマージする。 |
git rebase --continue | コンフリクトを解消したら、停止していた続きのリベースを行う。 |
Gitコマンド以外での覚書
バージョン管理したくないファイルがgit管理フォルダ内にある場合、.gitignoreファイルを作成し、そのファイル内に対象外とするファイル名を記述する。
このとき、ワイルドカードも使用可能。
Gitコマンドとは、直接関係ありませんが、よく使用するので、覚書で追加しておきます。
今週は、プログラミング学習サイトの今までの整理と、Gitコマンドの復習しか進捗がないため、ここまでとします。
次週は、今まで整理した資料をGitHubにアップしたいと思っています。
なにかご意見、ご要望等ありましたら、コメントいただけると幸いです。