Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save manabuyasuda/c7500b237124e93bd94a to your computer and use it in GitHub Desktop.

Select an option

Save manabuyasuda/c7500b237124e93bd94a to your computer and use it in GitHub Desktop.

Git用語集 - Gitを始めてみよう!! (FRONTEND CONFERENCE 2016)

「FRONTEND CONFERENCE 2016」でおこなわれるハンズオン「Gitを始めてみよう!!」で使用する用語をまとめたものです。

Gitとコラボレーションサービス

「Git」は分散型のバージョン管理システムのことです。Gitの機能を使うと、専用のサーバーに保存したファイル(リポジトリ)を自分のパソコン内(ローカル環境)にも複製することができます。

サーバーに保存したデータや、複製したデータ、ローカルで作業したデータに変更履歴を残すこともできます。それによって、データを共有しながら、それぞれのデータの差分を管理することができます。

Gitは「GitHub」や「Backlog」のような、サーバーのレンタルやGitにはない機能を提供しているサービスを使って利用するのが一般的です。

リポジトリ(データを保存する場所)

Gitはリポジトリ(repository)という単位でデータを管理します。ローカルサーバーにおけるプロジェクトのルートフォルダにあたります。

リポジトリにはローカルとリモートの2種類があります。

  • リモートリポジトリはGitの機能でサーバーに共有・保存されているファイルです
  • ローカルリポジトリはパソコンに保存されているファイルです

クローン(データを複製する)

Gitにあるリポジトリを自分のパソコンに複製する方法として、クローン(clone)という機能があります。

コードだけでなく、変更履歴なども複製されるため、差分を正確に管理することができます。

ブランチ(操作履歴を分岐する)

ブランチ(branch)とは操作履歴を分岐することです。最初に作られるmasterブランチから作業用のブランチを複製し、変更をおこない、masterブランチへマージ(合体)するのが一般的な手順になります。

ブランチは作業をする人単位で作成したり、作業する内容単位で作成をします。

ブランチはチェックアウト(checkout)することで切り替えることができます。

ブランチの作り方には「Git Flow」「GitHub Flow」といったブランチモデルが提唱されています(リンク先はいずれも日本語訳版)。

ローカルの作業環境

ローカル環境では「作業ディレクトリ」で作業を、「ステージングエリア」で変更履歴を管理していきます。

作業ディレクトリというと難しそうに聞こえますが、単純に複製してきたディレクトリ(フォルダ)のことです。

SourceTreeでは変更したファイルは自動で表示(index)してくれます。その中から保存を確定したいファイルを仮置きする場所がステージングエリアです。処理を確定することをコミットと呼びます。

コミットとプッシュ(リポジトリに登録する)

コミット(commit)とは変更したファイルの記録をローカルリポジトリに登録することです。コミットの段階ではサーバーにあるリモートリポジトリに影響はありません。

プッシュ(push)とはコミットした記録をサーバーにあるリモートリポジトリに反映させることです。ここではじめてローカルとリモートがつながります。

プル(リモートリポジトリの変更を変更を取り込む)

リモートリポジトリに変更があった場合、プッシュをすることができません。プル(pull)をしてリモートリポジトリの変更を自分のローカルリポジトリに取り込みます。変更箇所は自動で差分が計算されて反映されます。

マージ(別のブランチの変更を取り込む)

マージ(marge)とは別のブランチの変更を取り込むことです。masterブランチ以外でプッシュまでできたら、本番データであるmasterブランチにマージして、変更を反映させます。作業していたブランチを使わないのであれば、早めに削除してしまいましょう。

コンフリクト

コンフリクト(conflict)とは衝突・対立という意味の英単語で、複数人が同じ場所を変更してしまい、Git側が自動で処理(マージ)をすることができなくなった状態のことです。

<<<<<<< HEAD
重複したローカルリポジトリの内容
=======
重複したリモートリポジトリの内容
>>>>>>> コミットID

上記のように表示されるので、優先する内容だけ(<<<<<<< HEADなども削除)を残して、再びプッシュまでおこないます。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment