バージョン管理システムの種類
バージョン管理システムとは、ソースコードやドキュメントなどのファイルの変更履歴を記録・管理する仕組みです。
バージョン管理システムには中央サーバーがすべての履歴やファイルを管理する 集中型 と開発者ごとにリポジトリを持つ 分散型 があります。Gitは後者の分散型に当たります。
ブランチ(branch)
ブランチとは簡単に言うと自分の作業スペースです。
なぜ、ブランチを作るのかというと本体(main
)に直接コードの書き換えを行うと壊してしまう可能性があるからです。
もし、作業用のブランチでバグなどが発生してもそれは自分の作業スペースでのみの問題なので、main
や他の作業者に影響が出ません。
後の項目でブランチの作成コマンド等を紹介します。
Git・GitHubの操作
Gitは分散型のバージョン管理システムです。前項の知識を踏まえながらGit・GitHubの操作についてまとめます。
基本操作
-
git clone
GitHub上のリポジトリをローカル環境に複製するコマンドです。[URL]にはGitHubのリポジトリにある<>CodeからURLをコピーして接続します。cd [作業ディレクトリのパス] git clone [リポジトリのURL]
-
git init
ローカルリポジトリを初期化するコマンドです。.git
という隠しフォルダが作られることで、フォルダ内のファイル変更がGitによって記録・追跡されるようになります。
-
git branch
今いるブランチを確認するコマンドです。実行するとブランチの一覧が表示され、今いるブランチには*
がつきます。コマンドの後ろにブランチ名をつけると前項で説明したブランチの作成コマンドになります。git branch
このコマンドはブランチが作られただけで作成したブランチに移動はしません。また、ブランチ名には命名規則がありますがここでは説明しません。気になる人は調べてみましょう。git branch ブランチ名
-
git checkout
ブランチ作成とそのブランチに切り替えるコマンドです。git branch
よりもよく使われます。git checkout -b ブランチ名
-
git add
指定したファイルをワーク釣りからインデックスに登録するコマンドです。わかりやすく言うと、ローカルリポジトリに保存する前に、 「どの変更を保存するかを選ぶ」 作業です。git add ファイル名 #指定したファイルを追加 git add . #カレントディレクトリ以下のすべての変更を追加 git add folder/ #特定のフォルダ内の変更を追加
-
git commit
インデックスに登録されたファイルをローカルリポジトリに 記録=コミット をするコマンドです。実行する際には-m
でコメントを記述する必要があります。git commit -m "変更内容の説明"
-
git push
ローカルリポジトリに記録した変更を、リモートリポジトリ(GitHub)に送るコマンドです。
※初回のみ「.git」ファイルをリモートリポジトリに以下を実行します。git remote add origin [URL]
2回目以降は以下コマンドでリモートリポジトリにファイルをアップロードできます。
git push origin main
origin
:リモートリポジトリの名前(通常はorigin)
main
:送信したいブランチ名(通常はmainかmaster)
-
プルリクエスト
GitHub上でソースコードの変更をリポジトリの管理者やレビュアーに対して通知してmain
に反映(マージ)を依頼する機能です。git push
を行った後にプルリクエストを送ることができ、管理者やレビュアーには変更内容やコードの差分などが通知されます。
-
git pull
リモートリポジトリの最新の状態をローカルに取り込むコマンドです。自動的にGitHubから最新のmainをダウンロードし、ローカルに合体されます。git pull origin main
-
コンフリクト(衝突)
同じ場所を複数人で同時に変更したとき、どれを採用すればいいのかわからなくなる状態です。コンフリクトが発生したら発生しているブランチの編集内容を確認し、修正した後に再度マージすることで解消させます。
まとめ
バージョン管理システムについてとGit・GitHubの操作についてまとめました。これらを使うことで、Git・GitHubを使った開発を一通り行うことができます。GitHubを使いこなせるとチームでの開発効率が上がります。また、就活時のアピールにもなるのでぜひ活用していきましょう!