gitの使い方 - onasu/32icecream GitHub Wiki

image

gitとは?

一言でいうと 「バージョン管理システム」です。

gitは、プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムである。Linuxカーネルのソースコード管理に用いるためにリーナス・トーバルズによって開発され、それ以降ほかの多くのプロジェクトで採用されている。 gitでは、各ユーザのワーキングディレクトリに、全履歴を含んだリポジトリの完全な複製が作られる。したがって、ネットワークにアクセスできないなどの理由で中心リポジトリにアクセスできない環境でも、履歴の調査や変更の記録といったほとんどの作業を行うことができる。これが「分散型」と呼ばれる理由である。

出典:Wikipedia

gitの特徴として 「 分散型 と言われるとおり、自分のパソコンに全ての変更履歴を含む完全なフォルダの複製を作成できる」 ということらしいです。 つまり、 つまり、元フォルダのコピーを手元に置いておけて、自由に編集できる ということ。

gitがない時代はこういうことがよく起こってました。
imageimage

gitを使うことで、こういった 複数人での同時作業でも柔軟に最新バージョン がわかるようになりました。
大きな機能としては以下の通り

  • ファイルの変更履歴が管理できる
  • 過去のファイルに戻せる
  • なんでも管理できる
  • チームで共有できる

参考

git用語

リポジトリ(Repository)

repository

  • ファイルやディレクトリの状態を記録する場所のこと
  • リポジトリの中にディレクトリ(フォルダ)やファイル(htmlやcssなど)を置いてバージョン管理する
  • リモートリポジトリとローカルリポジトリがある
    • 作業をするのはローカルリポジトリ
    • その作業内容をネット(クラウド)で共有/管理するのがリモートリポジトリ
  • プロジェクトを始める時に使う

ブランチ(Branch)

branch

  • 履歴の流れを分岐して記録していくためのもの
  • 分岐したブランチは他のブランチの影響を受けないため、同じリポジトリ中で複数の変更を同時に進めていくことができる。
  • 分岐したブランチは他のブランチと合流(マージ)することで、一つのブランチにまとめ直すことができる。
  • 作業を開始する時に使う

コミット(Commit)

commit

  • ファイルやディレクトリの追加・変更を、リポジトリに記録すること
  • 前回コミットした時の状態から現在の状態までの差分を記録している
  • コミットを遡ることで、過去の変更履歴やその内容を知ることができる。
  • 行った作業をログとして残したい時に使う

プッシュ(Push)

push

  • リモートリポジトリに自分の変更履歴がアップロードされること
  • リモートリポジトリ内の変更履歴がローカルリポジトリの変更履歴と同じ状態になる
  • 作業が完了してリモートリポジトリに反映させたい時に使う

プル(Pull)

pull

  • リモートリポジトリから最新の変更履歴をダウンロードすること
  • 自分のローカルリポジトリにリモートリポジトリの変更履歴を取り込んで同じ状態になる
  • Pullは fetch(確認) + merge(合併) を同時に行ってくれる
  • 作業を開始する時や、他の人の変更を取り込みたい時に使う。

フェッチ(Fetch)

fetch

  • リモートリポジトリの最新の履歴の取得だけを行うこと
  • ローカルには反映されない
  • リモートリポジトリの状態を確認する時に使う

マージ(Merge)

ppap

  • 変更履歴や内容を統合させること
  • 作業や変更履歴を同期したい時に使う

リベース(Rebase)

rebase

  • 変更履歴の分岐点(ブランチの生え元)を変更すること
  • 履歴がシンプルになる
  • 変更履歴の開始場所を変更したい時に使う
  • 俺は作業を開始する時(ブランチを切る時)はたいてい git pull --rebase というコマンドを使って始めてる(履歴がキレイになるから)