![見出し画像](https://assets.st-note.com/production/uploads/images/96245724/rectangle_large_type_2_9c24700eb493fc818e071beea2ddf9e4.png?width=1200)
(勉強中)Gitコマンドまとめ
GUIに逃げてきた者による、CLI立ち向かうぞの意思を込めたまとめ。
今後さらに学んで追記前提。
clone
リポジトリを指定の場所に複製するコマンド。
git clone リポジトリURL
指定したURLのリポジトリをカレントディレクトリにクローンする
git clone リポジトリURL クローン先のディレクトリパス
指定したURLのリポジトリを指定ディレクトリにクローンする。カレントディレクトリにクローンしたくない場合や、リポジトリと同じ名称でクローンしたくない場合に使用する。
origin
ローカルにcloneしたリポジトリにリンク付けられたアクセス先を指す。「リモートのリポジトリ」とも言う。originを指定した時、常に最新が参照できるのではなく、clone/fetch/pushなどをした時の状態が参照できる。
例えば、masterブランチをcloneしたら、origin=clone時点のmasterの状態となる。
log
変更履歴を確認するコマンド。
git log
ログを出力する。リポジトリの最新ログを確認する場合はfetchコマンドを実行すること。
git log --graph
ツリー構造でログを出力する。見やすい。もっと見やすいログを出力したい場合は、gitクライアントツールをインストールして「tig」コマンドを使うと良い。
fetch
最新の内容を他のリポジトリのデータを取得するコマンド。
最新情報を取得するだけで、ローカルの作業ファイルを書き換えたりマージするコマンドではない。
git fetch origin
クローンしたリポジトリの最新データを取得する。
merge
マージするコマンド。
git merge マージしたいブランチ名
ローカルのブランチに、指定したブランチの内容をマージする。
今いるブランチを軸として、コマンドで指定したブランチの内容をマージする、という考え方。
開発ブランチの内容をmasterにコミットしたい場合、開発ブランチpush後、masterをローカルにcheckoutし、mergeコマンドを実行する。
pull
最新データを取得して、ローカルのブランチにマージするコマンド。
fetchとmergeを合わせたようなコマンド。
git pull origin ブランチ名
指定したブランチ名の最新内容を、ローカルのブランチにマージする。
diff
ブランチとの差異を確認するコマンド。
git diff
git addする前に変更した箇所を見たい時に使う。最新リポジトリの変更は未反映の状態での比較。
git diff --cached
git addした後に最新コミットとの変更箇所を見たい時に使う。
git diff HEAD^
git commitした後に、最新のコミットとそのひとつ前のコミットの差分を見たい時に使う。
git diff HEAD..origin
git pull する前に、ローカルリポジトリの最新コミットとpull先のリモートリポジトリとの変更点が見たい時に使う。
git diff 変更前のSHA..変更後のSHA
コミット同士を比較したい時に使う。コミットを特定するSHA-1ハッシュ値(git logで確認できる)を指定することで、比較できる。SHA-1ハッシュ値は最初の4文字以上を指定すれば、全ての値を入力する必要はない。
add
ローカルリポジトリの変更ファイルをコミット対象として追加するコマンド。
git add .
カレントディレクトリ配下全ての変更ファイルをコミット対象として追加する。
git add ファイル名
指定したファイル名をコミット対象として追加する。
git reset
git addの取り消しコマンド。
commit
ローカルの変更ファイルをコミットするコマンド。
(SVNであればこれだけでサーバ上のリポジトリに登録されるが、gitはこれだけではまだ登録されない点に注意)
git commit -m "コミットコメント"
コミットコメントを編集するエディタを介さずにコミットコメントをつけてコミットしたい時に使用する。複数行のコメントを残す必要がない時に使用。基本これでいい。
push
ローカルブランチのコミット履歴を、リモートリポジトリに更新するコマンド。
git push origin ブランチ名
リモートリポジトリにプッシュする。