スポンサーリンク

知るだけでGitが超絶簡単になる!初心者でも楽にGitを扱うために必要な用語一覧!

Gitって色々な用語があって分かりづらいですよね…。特にGitに不慣れな初心者の場合、英語やカタカナ用語ばっかりで意味不明ですよね。

今回は「何だこの単語?」となっても安心!Gitを知る上で必要な用語を全てご紹介します!

Gitを学ぶ際、教える際のチートシートとして使ってもらえたら嬉しいです。

スポンサーリンク

Gitの用語一覧

Git

Gitは分散型バージョン管理システムというファイルの変更履歴などを管理するためのシステムです。

親戚にSVNという集中型バージョン管理システムもあります。

分散型バージョン管理システム

分散型は複数の箇所でファイルのバージョンを管理できるシステムです。

そのためサーバー上のプロジェクトのみでなく、各開発者のPCにダウンロードしたプロジェクトでもバージョン管理することが可能です。

SVN

Gitではないですが、よく比較されるバージョン管理システムの1つです。

SVNはGitと違い集中型バージョン管理システムを採用しています。

↓GitとSVNの詳しい情報はこちらの記事にまとめてあります!↓

ログイン ‹ みなみ茶房 — WordPress

集中型バージョン管理システム

集中型はサーバー上に配置されたマスターとなるファイルでのみバージョンを管理できるシステムです。

そのため各開発者のPCにダウンロードされたプロジェクト内ではバージョン管理できず、その変更をサーバーにアップロードすることで初めてバージョン管理されます。

GitHub

Git運用されているプロジェクトを管理するためのWebサービスです。
おそらくGit用のWebサービスとしては世界トップシェアと思われます。

GitHubではソースコードの管理以外にも、プロジェクトのタスクや進捗管理に対応しています。

GitLab

Git運用されているプロジェクトを管理するためのWebサービスです。
GitHubよりシェアは少ないですが、社内サーバーへのインストールにも対応しているため、セキュリティ的にGitHubを使えない方におすすめのサービスです。

GiHubと同じくソースコードの管理以外にも、プロジェクトのタスクや進捗管理に対応してます。

git-flow

Gitの最もメジャーなプロジェクト運用フローです。

複数の種類のブランチを用いてプロジェクトを管理します。
ブランチの種類の詳細はブランチの項目をご参照ください。

git-model@2x.png

Gitコマンド

コマンドラインでGit操作を行うためのコマンドです。

GitBash

WindowsでGitコマンドを扱うためのコマンドラインツールです。
Git for WindowsでGitをインストールすると自動的にインストールされます。

GitBashを使うとWindowsでもLinuxコマンドが使えるようになる便利なコマンドラインツールです。

Repository(リポジトリ)

いわゆるプロジェクトのことです。

GitHubなどでプロジェクトが置かれた場所をリポジトリと言います。

↓たとえばこのSandboxのサンプルプロジェクトを置いている場所、ここがリポジトリです↓

GitHub - tc-minami/git-sandbox
Contribute to tc-minami/git-sandbox development by creating an account on GitHub.

Remote(リモート)

サーバー上のモノを指します。

PC内にあるものがローカル、サーバー上にあるものがリモートです。

Local(ローカル)

PC内のものを指します。

PC内にあるものがローカル、サーバー上にあるものがリモートです。

Origin(オリジン)

リモートリポジトリの名前としてデフォルトで設定される名前です。

例えばローカルの変更をリモートにアップロードする際、「〇〇の変更をOriginにアップロードする」という風に指定するのに使います。

この名前は変更できますが、Originのまま使用するのが一般的です。

Clone(クローン)

リモートリポジトリをダウンロードすることを指します。

Branch(ブランチ)

プロジェクトの作業用コピーのことを指します。

Gitではプロジェクトに何か変更を加える場合、それ専用の作業コピーを作成し、その作業コピー内で変更作業を行います。

またブランチには様々な種類があります。今回はgit-flowでプロジェクトを運用する際に扱うブランチの種類をご紹介します。

Master Branch(マスターブランチ)

リリース用ブランチです。
1プロジェクトに1つだけ存在します。

Masterブランチ上で直接変更を行うのはご法度です。

プロジェクトがリリース可能な状態になったら、Releaseブランチの変更をMasterブランチへと取り込み、Masterブランチ上でリリース用のパッケージを作成します

Develop Branch

開発最新バージョン管理用のブランチです。
1プロジェクトに1つだけ存在します。

Developブランチ上で直接変更を行うのはご法度です。

Featureブランチで開発が完了したら、Featureブランチの変更をDevelopブランチへと取り込みます。

Feature Branch

基本的な開発用ブランチです。
1プロジェクト内でいくつでも存在可能です。

実際のコーディングやプロジェクトの変更の99%はこのFeatureブランチで行われます。

開発タスクごとに新たなFeatureブランチを作成し、開発が完了したらDevelopブランチに変更を反映させます。

Bugfix Branch

バグ修正用開発ブランチです。
1プロジェクト内でいくつでも存在可能です。

基本的にFeatureブランチと同じですが、Featureブランチは追加開発なのに対し、Bugfixがバグの修正のみに特化したブランチです。

Hotfix Branch

緊急対応用ブランチです。
1プロジェクト内でいくつでも存在可能です。

緊急対応なため、Masterブランチから直接ブランチを派生させ、修正対応後にMasterブランチに変更を反映させます。

その後DevelopブランチにもHotfixブランチの変更を反映させます。

Release Branch

リリース用の最終調整用ブランチです。
1プロジェクト内でいくつでも存在可能です。

リリース毎にDevelopブランチからReleaseブランチを派生させ、リリースに必要な調整対応(バージョン変更など)を行います。

対応完了後、リリース作業のためにReleaseブランチの変更をMasterブランチに反映させます。

その後DevelopブランチにもReleaseブランチの変更を反映させます。

Tag(タグ)

ブランチ内の特定のコミットに目印(タグ)をつけます。

主にリリース時のプロジェクトの状態を記録するため、リリース時に現段階での最新Masterブランチにタグを作成します。

Checkout(チェックアウト)

指定のブランチローカルから取得します。
ローカルに該当するブランチが存在しない場合は同名のブランチリモートから取得します。

例えばブランチdevelopに変更したい場合、以下のコマンドで変更できます。

$ git checkout feature/sample

ブランチを変更すると、ローカルにあるコミットされていないファイルはそのまま変更先のブランチに反映されます。

結果コンフリクトなどエラーが発生する場合があるため、チェックアウト前にはコミットスタッシュするなりして、状態を綺麗にしておきましょう。

Push(プッシュ)

指定のブランチの変更内容をローカルからリモートにアップロードします。

ローカルで変更した内容はプッシュしない限りリモートに反映されないため要注意です。

Pull(プル)

指定のブランチの変更内容をリモートからローカルにダウンロードします。

Merge(マージ)

指定のブランチの変更内容を現在のブランチに反映させる。

GitHubGitLabにもこの機能は存在します。

Conflict(コンフリクト)

マージ時に発生するエラーです。

マージ対象の2つのブランチで、それぞれが重複する変更をしていた場合、Gitはどちらの変更が正として反映すれば良いかわからずにエラーが発生します。

このどちらも変更を反映すればよいか分からないエラーをコンフリクトと言います。

コンフリクトが発生した場合、全てのコンフリクトを手動で解消しないとマージが続行できないためご注意ください。

補足:重複する変更とは?コンフリクトが発生するケースの詳細

Gitは複数のメンバーが同じファイルを同時に変更しても、原則コンフリクトが発生しないように設計されています。

ただし同じファイルの同じ箇所を、複数人が違う内容に変更した場合、コンフリクトが発生してしまいます。

例えばSample.javaの中にSampleMethodという関数があったとして、AさんはブランチAでこの関数をMyMethodに名称変更し、同時にBさんはブランチBでYourMethodに名称変更したとします。

この後ブランチAとブランチBをマージする際、どちらの変更を残すべきかわからずコンフリクトが発生します。

また、似たようなケースでAさんがSample.javaに処理を追加し、BさんがSample.javaを削除した場合、このケースでもコンフリクトが発生します。

Add(追加)

現在のブランチの変更内容をコミット対象へと追加します。

デフォルトでは、全ての変更されたファイルはコミット対象外となっています。

Commit(コミット)

現在のブランチで、Addされコミット対象に追加されているファイルの変更内容を保存します。

コミットすることではじめて変更履歴が保存され、プッシュマージの時に反映されます。

コミットの頻度についてよく質問が上がりますが、基本的に何らかの変更を加えたら即座にコミットするくらいの頻度が理想です。

一日のコミット回数に限度はなく、より細かくコミットしたほうが後ほど変更ログを置いやすいので便利です。

コミットメッセージ

コミット時に設定するメッセージです。

コミットログ確認時などに表示され、どのコミットでどのような変更が行われたかを確認するためのメッセージです。

コミットログ

コミットの履歴です。

コミットがどの順番で、いつ、どのようなコミットメッセージコミットされたか確認できます。

コミットID

コミットのIDです。

主に特定のコミットの変更内容を確認したり、状態を復元するのに使用します。

Stash(スタッシュ)

現在のブランチコミットされていない変更内容を破棄します。

ローカルリモート問わず、そのブランチで一番最新のコミットの状態を指します。

.git

プロジェクトをGit管理するための設定ファイルです。

全てのGitプロジェクトのルートフォルダに保存されています。

.gitignore

指定のファイルをGit管理化から除外するための設定ファイルです。

これを設定しないと自動生成されたファイル含めて全てのファイルがGit管理対象となります。

デフォルトでは存在しないファイルなので、手動で作成します。
.gitと同じくGitプロジェクトのルートフォルダに配置すればOKです。

.gitconfig

リモートアクセス時に使用するGitのアカウント情報など、Gitに関する各種設定を管理するための設定ファイルです。

最低でもユーザー名、メールアドレスを設定しないとリモートアクセス時に「君が誰かわからないからアクセス許可しないよ」というエラーが発生します。

このファイルはコマンドラインツールのホームディレクトリに存在します。

↓こちらの記事に.gitconfigの設定方法をまとめています!↓

おわりに

いかがでしたでしょうか?

初心者の方が使用するであろうGitの用語を全てまとめましたので、少しでもこれからGitを勉強する方、現在Gitを使用している方の助けになれれば幸いです。

もし用語に漏れがある場合、もしくは情報が足りていない場合は、すぐに情報更新しますので、ご連絡お願いします!

またGitに関して「〇〇が分からない」などご要望いただければいつでも対応できますので、ご連絡お待ちしております!

コメント

タイトルとURLをコピーしました