Gitの基本操作について
EatSmartの新人エンジニアが第二回目のブログを更新したいと思います。
今回はGitの基本操作についてまとめてみました。
Gitとは
分散型バージョン管理システム
ローカルにリモートリポジトリの複製を作成し、複数人は各々のローカルで変更履歴を利用して自由にファイルファイルの編集やコミットができる
もともとはLinuxもソースコードを効果的に管理すために開発された
主なツール:Github,GitBucket,BitBucuket,GitLab
◇リポジトリ
ファイルやディレクトリの状態を記録する場所。保存された状態は内容の変更履歴として格納されている。変更履歴を管理したいディレクトリをリポジトリの管理下に置くことでそのディレクトリ内のファイルやディレクトリの変更履歴を記録することができる
◇コミット
ディレクトリやファイルの状態を記録するための操作のこと
作業ディレクトリ上で一区切りついた時にコミットしてそれまでの作業を一旦保存する
記録するファイルを一時的に登録する場所をインデックスという
◇ブランチ
作業履歴を枝分かれさせて記録していくためのもの
◆ masterブランチ
リポジトリに最初のコミットを行うと自動で作成されるブランチ
ブランチは複数作ることができブランチを作るにはすでにあるブランチをコピーしなくてはいけない
ブランチには名前を作ることができ開発者は自由にブランチを移動できる
最終的に全てのブランチはmasterブランチに結合される
各開発者は作業ごとにブランチを作る (=ブランチをきるという)
◆ブランチの作成
git branch ブランチ名
◆ブランチ間を移動する
git checkout ブランチ名
ローカルでの作業からリモートにアップデートするまでの流れ
ワーキングツリー ⇒ インデックス(ステージング環境)◆ワーキングツリー
⇒ ローカルリポジトリ ⇒ リモートリポジトリ
ファイルの編集作業場所でファイルの編集や追加、削除などを行う
◆インデックス
コミットするためのファイルを記録する場所
ワーキングツリーで編集したファイルは git add でインデックスへ移動させる
◆ローカルリポジトリ
リモートリポジトリにアップロードするためコミット履歴とファイルを記録する場所
インデックス上のファイルをgit commit でローカルリポジトリにコミットする
◆リモートリポジトリ
複数人で共有する場所
ローカルコミットしたファイルをgit pushでリモートリポジトリにアップロードする
◆プルリクエスト
作成したブランチをmasterブランチにマージする時の確認作業のこと
差分を確認することができ、他の開発者から確認やレビューをしてもらうことができる
◆ブランチをマージする
マージしたブランチは削除する
コマンドの基本操作
git add ワーキングツリー上で編集したファイルをステージング環境へ追加する
git commit ローカルコミットを実行する
git commit -m 新規コミットを作成する
git commit -amend 直前のコミットを上書きする
git push ローカルリポジトリのブランチをリモートリポジトリへアップロードする
git log コミット履歴を表示する
git log --merge マージコミットだけを表示する
git reflog HEADの履歴一覧を表示する
git reset HEADの位置を変更する
git remote リモートリポジトリの最新状態をローカルリポジトリのリモート追跡ブランチにダウンロードする
git merge 指定したブランチを現在のブランチに統合する
git pull 最新のリモートリポジトリの内容をローカルリポジトリに反映する
git stash まだローカルコミットしていないファイルを一時的に待避させる
git cherry-pick 他ブランチの特定のコミットを現在のブランチに取り込む
Gitを使い始めた時はマスターブランチに結合?プルする?ワーキングツリーって何?
仕組みを理解するのに凄く苦労しましたがGitHub Desktopを使ったりして操作に慣れていきました。GUIで比較的簡単に操作ができるので初学者にはオススメのツールだと思います。