Git
ソース管理

SVNがわかるけどGitがわからないし長い文章は読みたくない人が、Gitの初歩を一発で理解するポイント

困っていたこと

過去にSubversionを使用していたが、
Gitの意味がよくわからなかった。

しかし、思想がつかめれば理解するのは一瞬だった。そしてGitの仕組みに感動。興味さえ湧けば、後は適宜調べるだけ。

このキジはSVNがなんとなくわかる人向けのGitの初歩。

まずは図で理解

分散管理です。

Gitは他のソース管理(通常は集中管理)と違い、分散管理を採用しています。それで大事なことは「サーバーが壊れても、ローカルに全履歴がコピーされている。」ということ。

image.png
画像をお借りした元の場所:git 分散バージョン管理システム

つまり・・・

  • サーバーが逝っても、誰かのPCが生きてりゃOK!
  • 誰かが自分のPCとサーバーのソース消しても、他に誰か居ればOK!
  • ネットワークが使えなくても、自分のPC上でコミットできる!

コマンドを理解するための対訳表

色々コマンドがあるが、初歩に必要なコマンドでさえ、ピンとこなかった。
でも、人間語に翻訳してみたら、理解できた

リポジトリを作成する

$ git init

ギット exeに命令 カレントディレクトリをgitのリポジトリにするよ!

  • このリポジトリは、.gitフォルダが作成され、親ディレクトリごと移動しても、特に問題ない。
  • このディレクトリがいわゆるプロジェクトフォルダとなる。

ファイルを管理対象にする

$ git add [filename]

ギット exeに命令 追加するよ ファイル名はこれ!

  • ディレクトリ内部にファイルが作成されただけだと、ただそこにあるだけで対象とならない。
  • そのファイルをGitの管理対象にする。
  • 管理対象にすると、変更を検知する。
  • 管理対象にすることを、インデックスに追加すると云ふのかと思ったら、違うらしい

コミットする。

git commit -m “[comment]”

ギット exeに命令 確定するよ 変更内容はこう!

  • 管理対象のファイルに行われた変更を確定し、自分のローカルリポジトリ内にスナップショットを保存する。
  • なるべく細かくコミットすると、後で戻りやすいし、変更が理解(思い出し)しやすい。

リモートリポジトリを追加する。

> git remote add origin hogehoge.com/git/hogehoge.git

ギット exeに命令 リモート を追加 originと呼ぶ 場所はここだよ

  • 自分のローカルリポジトリを変更したり、コミットしただけでは、特にリモートリポジトリには影響がない。
  • 通常はリモートリポジトリにoriginと言う名前を付ける。(慣習)

覚えておく用語

リポジトリ

repository = 倉庫

  • リモート(通常ベア)とローカル(通常ノンベア)で2種類ある。

ワークツリー

work tree = 作業する木

  • ソースコードなどの実際に作業するファイルが置いてある場所

ブランチについて

branch = 枝

  • 枝分かれさせる場合はブランチ(=枝)を作り、任意の名前を決められる。
  • 本流のブランチ名はmasterと言う名前。(デフォルト)

プッシュ

push = 押す、押し込む、押し付ける

  • ローカルの変更を、リモートに反映(押しつける)

フェッチ

fetch = 取ってくる、呼んでくる、引き出す

  • リモートの変更を、ローカルに取得(引き出す)

マージ

merge = 併合する、溶け合わせる、合併する

  • 異なるブランチを合体する。

クローン

clone = クローン、分枝系

  • リモートリポジトリをコピってローカルリポジトリを作る
  • OSSをもらってきたり、プロジェクトに途中から参加する場合は、最初にやる

参考

Git日本語公式マニュアル
Git 基本の用語集