Git超初心者がRaspberry PiでGitサーバを構築して、Windowsでcloneするまで! 前編 Gitとは?
こんにちは。久しぶりの更新です。
今まで何かアプリケーションを開発する時、日付.zipやバージョン名.zipでクソ管理してきた僕ですが、ついにGitを使うときがやってきました。
訳あってGithub等の外部サービスにリモートリポジトリを置けない状況だったので、自宅にあるRaspberry Pi3でリモートリポジトリを作成し、手元のWindows PCにもGitを入れてそこからclone、pushできる環境を作りました。
Gitってなんだ?という状態から行ったこと、躓いたことを備忘録として書いていこうと思います。
・Gitってなんだ!
Gitはプログラムのバージョン管理を楽に行っちゃおうっていうツールです。
例えば1人でアプリを開発する場合。新たに機能を追加したいけど、それで何か不具合が起きたら困るし…と、既存のプログラムをoldVersionなんて言う名前にしてバックアップを取り、新たな機能を開発する…。そんな事を繰り返していると、フォルダの中はoldVersion1, oldVersion2, oldVersion2 - コピーと、意味分からないファイルでいっぱい!
または複数人で開発する場合。うまく連携が取れず、気がついたら同じプログラムを複数人で編集してしまい、競合が発生!
こんな経験、ありませんか?
これを全て解決してくれるのが、Gitなのです。
Gitは主に「リモートリポジトリ」「ローカルリポジトリ」「インデックス」「ワーキングツリー」から構成されます。
(リポジトリは、ファイルの変更履歴を保存する場所を指します。)
・ローカルリポジトリ
個人の変更履歴を保存する場所です。
・ワーキングツリー
ローカルリポジトリにあります。要は作業場です。ここにあるファイル(フォルダ)を編集していきます。
・インデックス
ローカルリポジトリへ変更内容を記録したいワーキングツリーのファイルを、まずはここに格納します。ここに格納されていないファイルは、変更内容がローカルリポジトリへ記録されません。
・リモートリポジトリ
サーバ等へ置き、みんなで共有するリポジトリ。みんなの変更履歴がどんどん追加されていく。基本的にリモートリポジトリはワーキングツリーを持たない。これをベアリポジトリという。
gitでは主なコマンドとして、
clone
add
commit
push
pull
があります。
・clone
リモートリポジトリを、個人(ローカル)のディレクトリへコピーする(クローンを生成する)コマンドです。それがローカルリポジトリとなります。
・add
指定したワーキングツリーのファイル(フォルダ)をインデックスへ格納するコマンドです。
・commit
インデックスにあるファイル(フォルダ)の前回commitからの更新内容をローカルリポジトリへ保存するコマンドです。普通はメッセージを付け、何をどう変更したのかを明白にします。
・push
ローカルリポジトリの中身をリモートリポジトリへ追加するコマンドです。
・pull
誰かが更新し、リモートリポジトリへ追加した内容を、自分のローカルリポジトリへ反映させるコマンドです。
他にもbranch等、大事な大事な機能がありますが、今はとにかくRaspberry Piでリモートリポジトリを作ってwinPCでcloneするのが目的なので、今回は省略!
もう文章だらけで飽きましたよね。
百聞は一見に如かず、次回はいよいよRaspberry Piでの作業に移ります!
後編はこちらから!
tocknlab.hatenablog.com