🚀

自分用gitコマンド一覧

2024/09/04に公開

git init →カレントディレクトリをリポジトリにする

git remote add origin <URL> →リモートリポジトリに接続する。URLをoriginという名前で記憶させる。

git push [--set-updtream] origin <branch_name> →ローカルリポジトリのブランチの内容を、指定のリモートリポジトリ(originの箇所)へ同期する。(--set-upstream→現在のブランチを、リモートリポジトリoriginの指定のブランチの、追跡ブランチとして設定し、以降 git push の因数を省略できる。)

git clone <URL> [<repo_name>] →リモートリポジトリをローカルにクローンする。現在のフォルダの下にリポジトリのフォルダができている。(<repo_name>→指定したリポジトリ名でローカルにクローンされる)

git diff [--word-diff] <file> →作業ディレクトリとステージングエリアの差分を行単位で表示する(--word-diff→単語単位)

git diff <repo_name> origin/<repo_name> →ローカルリポジトリとリモートリポジトリoriginとの比較

git commit -a -m '<comment>' →ステージングエリアと違いがあるファイルを一気にコミットする。ただ、追跡されていないファイルは含まない

git commit --amend [--noedit] →直近のコミットを修正する。ステージングエリアにあるものを再度コミットし、コメントを加える。コミットするファイルの漏れや、コミットメッセージを変更する際に使用する。(--noedit→コミットメッセージを変更しない)

git log [<file>] [-n <limit>] [--oneline] [--stat] [<branch_name>] [-p]→リポジトリのコミット履歴を表示する(<file>→指定ファイルのみ -n<limit>→件数指定。 --oneline→一行にまとめる --stat→通常の履歴+何行削除&追加したか <branch_name>→指定ブランチの履歴参照 -p→通常の履歴+差分表示)

git reset <file> →直前のコミット時の状態に戻す。ステージングエリアに追加されたファイルをステージングエリアから削除するという見方もある。取り消し履歴が残らない。作業ディレクトリはそのまま

git reset --hard →直前のコミット時の状態に戻す。取り消し履歴が残らない。作業ディレクトリも変更される。ファイル名を指定できない。

git reset [--hard] <commit id> →指定したcommitidまでコミットの状態まで戻す。取り消し履歴が残らない。ステージングエリアは変化するが、作業ディレクトリはそのまま。(--hard→作業ディレクトリも変更する)

git restore [--staged or --source HEADかcommit id] [-p] <file> →作業ディレクトリのファイルの変更を取り消しする。ステージングエリアのファイルの内容に戻す。(-p→変更の一部を取り消す。 --staged→ステージングエリアにあるファイルの変更を直前のコミットの段階に取り消しする。作業ディレクトリはそのまま --source HEAD→ステージングエリア、作業ディレクトリどちらとも直前のコミットの状態に戻す。)

git rm [-r] [-n] [--cached] <file> →ステージングエリアと作業ディレクトリのファイルを削除する。(-r→ディレクトリ削除 -n→実際には削除せず、何が削除されるか閲覧 --cached→作業ディレクトリは残す)

git clean [-f|-n|-d] →gitの追跡対象外のファイルを削除する。-fで強制削除。-nは削除対象を確認するだけ。-dはディレクトリの場合で、-ndや-dfなどの使い方

git revert <commit id> →コミットを打ち消すコミットをする。指定したコミットIDの状態に戻るが、git resetと違い、打ち消されたという履歴がgit logに残るため、安全。

git mv [-n] 旧ファイル 新ファイル →作業ディレクトリのファイル名変更、移動。通常のmvコマンドと似ているが、git mvコマンドの場合はコマンド後もファイルを追跡する。内部的にはgit addとgit rmを同時に行っている。(-n→実際には行わず、どのような結果になるか表示)

git archive →作業ディレクトリのみからアーカイブを作成する。.gitを含まない

git branch →ブランチ一覧表示。先頭に*が付いていたら、HEADが参照しているブランチ

git branch [-m] [-d] [-D] <branch_name> →現在HEADが指しているブランチが参照しているコミットに対して、新しいブランチが作成される。作成されるのみでブランチの切り替えは行われない。(-m→現在のブランチの名前を指定した名前に変更する -d→ブランチの削除。ただ、マージされていないコミットが残っている場合はgitが削除を拒否する。-Dオプションをしようすると強制削除ができる。ただ、-dと-Dはチェックアウト中のブランチは削除できない)

git switch [-c] <branch_name> [origin/<remote branch_name>]→ブランチを切り替える(-c→新しいブランチを作成&切り替える origin/<remote branch_name>→-cと組み合わせて使う。リモートリポジトリoriginのブランチ<remote branch_name>の追跡ブランチを、ローカルに<branch_name>の名前で作成&切り替える)

git fetch [--all] →リモートリポジトリの内容を入手。追跡ブランチに反映する。(--all→すべてのブランチを反映)

git merge origin/<remote_branch_name> →追跡ブランチの内容をローカルリポジトリのブランチに反映。

git pull [origin <repo_name>] →追跡ブランチが設定してあれば、git pull のみでよい。ローカルリポジトリでHEADが参照しているブランチ

git blame <file> →誰がいつかいたコードかを、行ごとに調べられる。

git stash [pop] [save "<message>"] [list] [show] →コミットされていない変更を一時的に保存できる。これにより、作業途中でもブランチを切り替えられる。通常は、コミットしていない変更が現在のブランチに存在していた場合に、git stashなしでブランチを切り替えようとするとエラーになる。(pop→保存された変更を取り出す。変更を加えていたブランチ以外でも実行できる。)git stash は何度でも実行でき、LIFO方式で保存され、git stash pop では、最後に保存されたものが最初に取り出される。(save "<message>"→メッセージ付きで格納できる list→格納されているスタックのリストとメッセージが表示できる show→保存されているスタックの詳細・中身が見れる)

Discussion