Diary Git

第5週 Gitコマンドの復習

今週は、いままで考えてきたプログラミング学習サイトのまとめ資料の作成と、資料を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-agit 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 reflogGitの操作履歴を表示する。
git statusバージョン管理対象外、未add、未コミットのファイルを表示する。
git diffワークツリーとステージングエリアのソースコード差分を表示する。
git diff--cachedステージングエリアとHEADのソースコード差分を表示する。
git diffHEADワークツリーと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 stashlistスタックに退避させたリストを表示する。
git stashpopスタックに退避したワークツリーとステージングエリアの変更を取り出す。

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にアップしたいと思っています。

なにかご意見、ご要望等ありましたら、コメントいただけると幸いです。

-Diary, Git