はじめに
エンジニアに転職して1年経った今、これからGitを使い始めたいという方向けに改めて「Gitとは何か」「どんなコマンドを使うのか」をまとめたいと思います。
こちらの記事ではコマンドをまとめるだけですので、SSH接続される方はキーの設定はすでに済んでいるものとしております。設定方法についてはGitHub公式を参照してください。
GitとGitHub
混同しがちですが、それぞれ以下の用途で利用します。
Git…バージョン管理システム。バックアップなどを手動で取る必要なく、過去のコードをいつでも遡れます。
GitHub…プロジェクト管理ツール。バージョン管理したソースコードをWeb上で自分を含めた一人以上のメンバーによって管理できます。共同開発をしたり、課題管理をしたり、コードレビューをしたりと、プロジェクトの管理全般を行います。
今回はGitで本当に実務で使ったコマンドたちを紹介していきたいと思います。
★★★ これがなきゃ始まらない!絶対使うコマンド
// Git管理を始める
git init
// GitHub上のリポジトリと紐つける
git remote add origin {リポジトリパス}
// リモートに存在するプロジェクトをローカルにクローンする
git clone {リポジトリパス}
// ブランチを切り替える
// 新しくブランチを作りたい場合は-bをつけることで作成&切り替えが同時に可能
// 直接コミットIDを指定することで指定のコミットIDに移動することも可能
git checkout (-b) {ブランチ名}
git checkout {コミットID}
// Git管理したいファイルをステージングする
git add {ファイルパス}
// ステージング前の変更を取り消す
git restore {ファイルパス}
// ステージングを取り消す
git restore --staged {ファイルパス}
// ステージングした変更を確定する
git commit -m "コミットメッセージ"
// 特定のコミットまで戻す
// コミットIDの部分に HEAD^ と指定すると直前のコミットを取り消すことができる
// オプションなしの場合はステージングも取り消す
// --softでステージングはしたままにする
// --hardで変更したコードそのものを取り消す
git reset (--soft/--hard) {戻したい時点のコミットID}
git reset (--soft/--hard) HEAD^
// リモートにGit管理しているソースコードを反映させる
// -uをつけることで今後このブランチをpull/pushするときには[origin {ブランチ名}]を指定しなくてよくなる
git push (-u) origin {ブランチ名}
// リモートのプロジェクトのソースコードをローカルに反映させる
// git pushですでに-uを指定していれば[origin {ブランチ名}]は省略して良い
git pull origin {ブランチ名}
// 二つのブランチのソースコードを統合する
git merge {統合したいブランチ名}
★★☆ ここまで覚えておけば小回りがきく!便利コマンド
// 空コミットする
git commit --allow-empty -m "空コミット"
// 変更をコミットせずに退避する
git stash
// 退避した変更を戻す。退避先にも情報は残したままにする
git stash apply {スタッシュ名}
// 退避した情報を削除する
git stash drop {スタッシュ名}
// 退避した変更を戻す。退避先の情報は削除する
git stash pop {スタッシュ名}
// スタッシュ名一覧
git stash list
// コミットを打ち消す
git revert {コミットID}
// 特定のコミットを別のブランチにコピーする
git cherry-pick {コミットID}
// コミットの履歴を見る
// --onelineでコミットIDとコミットメッセージのみを表示する
// -nで表示する行数を指定できる
git log (--oneline -n{表示したい行数})
// 指定したブランチへ共通のコミット以降を付け替える
git rebase {ブランチ名}
★☆☆ あまり使うことはないけど知っておいて損はない/プロジェクトによっては使うコマンド
// コミットした変更の中身を見る
git show {コミットID}
// 派生元のブランチを付け替える
git rebase --onto {付け替え先のブランチ名} {派生元のブランチ名} {付け替えたいブランチ名}
// Gitオブジェクトの中身を見る
git cat-file -p {オブジェクトのハッシュ}
// サブモジュール追加
git submodule add {リポジトリパス}
// サブモジュールの繋ぎ先変更
git submodule set-url {サブモジュール名} {リポジトリパス}
// ファイル削除
// サブモジュールディレクトリごとサブモジュールを削除するのにも使える
git rm -f {ファイルパス}
// 追跡対象から外す
git rm --cached {ファイルパス}
終わりに
今ざっと思いつくのはこれくらいでしょうか。。
思い出したらまた追記します!