Gitの用語とコマンドまとめ
エンジニア転職に向けて勉強を開始したばかりですが、早速Gitの理解につまずきました。
自分のアウトプットと備忘録の為に、調べた内容をまとめました。
故に超初心者向けとなっております。
Gitとは何か
ファイルのバージョンを管理するツール
いつ、誰が、どのファイルを、どのように変更したかのか、という履歴を記録できる。
一つのシステムに対して一つのリポジトリという入れ物を作って、その中で作業をすることによって複数人で同時にシステムの開発をしていける。
Gitが用意したサーバーでファイルを共有する
複数人で共同開発する場合、このサーバーに対してファイルをアップロードやダウンロードすることでファイルの共有を行う。
このとき、サーバー側をリモートと予備、個人の作業用端末をローカルと呼ぶ。
GitHubでサーバーの中身を確認できる
GitHubというツールを使うことで、サーバーの中身をウェブブラウザ上で見ることがGitとは別物なので混同しないように注意。必ずしもGitHubを使う必要はない。
Gitの基本用語
用語 | 意味 |
---|---|
リポジトリ(Repository) | 更新の履歴を管理場所場所 |
リモートリポジトリ(remote repository) | サーバーにあるリポジトリ |
ローカルリポジトリ(local repository) | 個人のPCにあるリポジトリ |
ステージング(staging) | ファイルがGitの管理下にある状態(git Statusで緑色の状態) |
モディファイド(modified) | git statusで表示される修正済みのファイル |
コミット(commit) | 編集したファイルを保存すること |
オリジン(origin) | リモートサーバーのこと |
プッシュ(push) | ローカルからリモートにファイルをアップロードすること |
プル(pull) | リモートにある最新のリポジトリ情報をダウンロードすること |
マスター(master) | 正規の変更履歴 |
ブランチ(branch) | gitの変更履歴を分岐機能 |
マージ(merge) | 作業中のブランチに別のブランチを合流すること |
プルリクエスト | GitHub上でブランチのマージを依頼することができる |
フェッチ(fetch) | リモートの最新情報をダウンロードすること |
リベース(rebase) | 異なるブランチの変更を反映させること。変更履歴が片方に集約される |
コンフリクト(CONFLICT) | 同じブランチの同じ行を変更した場合に発生するエラー |
Gitのコマンド
コマンド | 実行される操作 |
---|---|
git clone "リポジトリURL" | 新規でリモートリポジトリからローカルリポジトリを作成する |
git status | gitの状態を見る |
git add "ファイル名" | ファイルをgitの管理下に置く(ステージング) |
git commit -m | gitに保存を行う。コミットメッセージを付ける |
git log | 何時何分に誰がコミットしたかの記録をみる |
git Push origin | リモートにアップロードする |
git pull origin | リモートのリポジトリ情報をダウンロードしてマージする |
git checkout -b "作成するブランチ名" origin/master | 新しいブランチを切るコマンド |
git checkout "ブランチ名" | 作業するブランチを切り替えるコマンド |
git branch | ブランチの一覧をみるコマンド。緑色が現在のブランチ |
git branch -a | リモート側も含めた全てのブランチを見る |
git merge "mergeしたいブランチ名" | 指定したブランチを現在の作業ブランチに合流させるためのコマンド |
:wq | viエディタに入力することでフェッチしたブランチをマージする |
git fetch origin | リモートの最新情報をダウンロードする |
git rebase "A" "B" | AのブランチにBのブランチを合流する |
git push -f | リモートを無視して強引にプッシュする |
git reset --hard HEAD | コミットする前の変更をリセットする |
git stash | コミットしていない内容を全部消す |
git stash pop | git stashコマンドで消した内容を元に戻す |
最後に
他にも色々ありそうですが、今理解できそうなものはこんなところです。
実際使って慣れるしかないと思いますが、個人の開発であってもバージョンを管理することで
過去のデータを残すことができるのはとても便利だと思いました。
また今後エンジニアとしてやっていくにも操作方法はコマンドに慣れた方がいいと思いました。