sagantaf

なんでも自分の思ったこと、経験したことを書いて生きます。

GIt入門 いまさらだけど基本的なことをまとめてみた!

Gitとは

Gitとはファイルのバージョン管理システムのこと

バージョン管理とは、ファイルの過去の状態も保存しておき、どのように変更されてきたか管理することを表している。

普段、WindowsMacでエクセルファイルやテキストファイルを作って書いて保存して、を繰り返すと、同名ファイルは都度「上書き保存」されて、過去どんなことを書いて消してしまったのかが残らない。

一人だと過去の履歴が消えても、そんなに困ることは少ないが、 複数人でひとつのファイル(例えば経費管理のファイルや、Pythonのコードファイル)を編集するとなると、他の人が行った内容の変更に間違いがあったり、いまいちな点があったりして元に戻したい、となるときが結構ある。

そんな時に、過去の履歴があってすぐに戻せるとしたら、かなり助かるはず。

だからGitのようなバージョン管理システムが開発された。

基本用語

リポジトリ:過去のバージョンも履歴として残しておける、ファイルを保存するための貯蔵庫。個人リポジトリ(=ローカルリポジトリ)と、共有リポジトリ(=リモートリポジトリ)の2種類ある。

commit:個人リポジトリに変更を記録すること。要するにPC内にファイルを保存すること。

push:共有リポジトリに変更を記録すること。要するにインターネット上でチームなどと共有している場所にファイルを保存すること。

pull:共有リポジトリの情報を同期すること。要するにインターネット上の共有しているファイルの状態をPC内に持ってくること。

f:id:sagantaf:20180912231826p:plain


使い方

- インストール

GitはMacの場合、デフォルトでインストールされている。

$ git version
git version 2.16.1

Windowsの場合、自分でインストールする必要がある。



- 個人の情報を設定

GitHubでリモートリポジトリを使うために、gitを使い始める前にアカウントとメルアドを設定する必要がある。

$ git config --global user.name "自分のアカウント名"
$ git config --global user.email "登録したメールアドレス"



- PCに個人リポジトリ(=ローカルリポジトリ)を作成

git init コマンドで現在いる場所に隠しディレクトリ ".git" が作成される。

$ pwd
/Users/hoge/.git/
$ git init
Initialized empty Git repository in /Users/hoge/.git/
$ ls -a .git/
.     HEAD        description info        refs
..      config      hooks       objects

.gitディレクトリの中には様々なファイルやディレクトリが生成される。



- ローカルリポジトリにファイルをcommitする

自分のPCのファイルをローカルリポジトリに置く前にステージングエリアと呼ばれる場所に置く必要がある。ステージングエリアに置くことで、このファイルをGitで管理するよ!と宣言することになるイメージ。 その後、commitしてローカルリポジトリにファイルを置くことができる。

$ touch test.txt
$ echo "This is test." >> test.txt
$ git add test.txt
$ git commit

git commit をするとvimが開くので、一番上にコミットメッセージを追記して、保存すればOK。 (vimが開いたら、Escボタンで編集できるようになる。メッセージを追記したらもう一度Escを押して、:wqと押してEnterすることで保存できる)

f:id:sagantaf:20180913004354p:plain



- gitで管理したくないファイル(例えばパスワードファイル)の設定

gitignoreというファイルを作り、その中に管理したくなりファイル名を書いて置くことで、commitされなくなる。