github用語


gitとは

プログラムなどを記述したソースファイルを管理するための「バージョン管理システム」のこと。Gitを使うことで、複数人で開発したソースファイル一式を一元管理することが出来る。

・ファイルの変更履歴を管理
・過去のバージョンに戻せる
・さまざまなファイルを管理できる
・チームで作業を共有できる

githubとは

Gitのリポジトリを「Web上のGUI操作でグラフィカルに扱うことが可能」なツール。
(リポジトリとは、ソースファイルが格納されたディレクトリなどを保存する箱のようなもの。)

GitHub上で管理しているプロジェクトをメンバーごとにコピーしてローカルで作業を行い、修正したファイルをGitHub上で共有することが可能。
GitHubでは、「ローカルリポジトリ」「リモートリポジトリ」と言った概念がある。


・自分のPCで作業する「ローカルリポジトリ」
・GitHubなどでサーバ上で管理する「リモートリポジトリ」

Git・Github用語

リポジトリ(repository)
いわゆる貯蔵庫です。システムの開発プロジェクトに関連するデータの一元的な貯蔵庫を意味します。一種のデータベースで、各工程の様々な情報を管理することができる。


ローカルリポジトリ(local repository)
Gitのリポジトリはローカルリポジトリとリモートリポジトリに分けられます。ローカルリポジトリは自分のマシン内に作られ、ワーキングツリーが所属するリポジトリのこと。


リモートリポジトリ(remote repository)
自身の手元側にあるローカルリポジトリに対して、外部にあるリポジトリのことを指します。サーバなどネットワーク上にあるリポジトリもそれに当たります。公開、共有がスムーズなので複数人での開発に使われたり、個人開発でもネットワーク状にデータを保存したい時、共有したい時に使えます。


フォーク(fork)
forkはGitHubが提供する機能のひとつです。fork は他の開発者のリポジトリを github上でclone(クローン)します。また、forkは、fork元への貢献を前提とします。開発を援助する前提の上で使う必要があります。

食器のフォークをイメージするとわかるように、フォーク元とフォークしたリポジトリはそれぞれ独立しており、交わることなくそれぞれの道を歩みます。


クローン(clone)
クローンとはリモートリポジトリを手元のマシンの指定した場所に複製します。


イニット(init)
リポジトリを新規作成、空のレポジトリが作成されます。また、すでに存在するリポジトリの初期化をしたい場合にも使われます。


ワーキングツリー(working tree)
Gitの管理下に置かれた、自分が実際に作業をしているディレクトリのことです。作業ディレクトリ、ワークツリー、様々な呼ばれ方をします。


インデックス(index)
コミットする前に更新内容の一時的な保存をする場所のことで、ステージとも呼びます。


アド(add)
ワーキングツリーにあるファイルの更新内容を、インデックスに反映するためのコマンドです。コミットする対象を登録する作業です。


コミット(commit)
追加・変更したファイルをリポジトリに記録します。ゲームのセーブみたいな感じです。


コミットメッセージ(commit message)
コミットした内容を記述します。基本的に必須で書いて行きます。変更内容の要約、変更した理由(内容、詳細)などを記述します。


ヘッド(HEAD)
今いるブランチの最新のコミットの代名詞を指します。デフォルトではmasterの先頭を表し、HEADが移動することで、使用するブランチが変更されます。


プル(pull)
リモートリポジトリのコミットをローカルリポジトリに送り込みます。データのダウンロードのようなものです。


ブランチ(branch)
プロジェクトを分岐させることにより、プロジェクト本体に影響を与えずに開発を行える機能です。ブランチにより、不具合が発生した場合も対応しやすく、1つのプロジェクトを同時進行で作業ができます。


マスターブランチ(master branch)
プロジェクトの本流のブランチで、リポジトリに最初のコミットを行うと、masterという名前のブランチを作成されます。その後のコミットはブランチを切り替えるまでmasterブランチに追加されていきます。


マージ(merge)
加えた修正を統合する作業をします。変更を加えたブランチを元のブランチにマージして修正します。


リセット(reset)
最新のコミットを取り消します。また、ステージされたファイルを取り消します。


リバート(revart)
取り消したいコミットに対して、それを打ち消すようなコミットを新しく作成します。ただ、既存コミットの履歴が消えるわけではなく、コミットログには残っています。


リベース(rebase)
指定したコミットをブランチを変えて作り直すことができます。また、コミットをひとまとめにしたりして、ログを綺麗にするコマンドです。


チェリーピック(cherry-pick)
(これは初心者用語としてはどうかと思いますがσ(^_^;)他のブランチのコミットを自分が今いるブランチに反映させることができます。マージはすべてのコミットが取り込まれますが、チェリーピックは選択したコミットのみ取り込むことができます。


スタッシュ(stash)
コミットせずに変更を退避したいときに使います。あるブランチで作業中だけど、いますぐやりたいことができた時、作業するブランチを間違えてしまった時にコミットしていない変更を一時退避することができます。


コンフリクト(conflict)
Gitの場合同じファイルの同じ場所への変更が同時にある時に生じるエラーのことを言います。


フェッチ(fetch)
リモートリポジトリの最新の履歴の取得を行います。取得を行うのみなので、マージが自動で行われないのがpullとの違いです。


チェックアウト(checkout)
今作業しているブランチから出て、他の作業ブランチで作業をしたい場合に使用するコマンドです。


プッシュ(push)
ローカルリポジトリの内容をリモートリポジトリに反映させます。


プルリクエスト(pull request)
開発者のローカルリポジトリでの変更を他の開発者に通知するGitHubの機能です。会社やチームでコードレビューするときに使います。