とっくんラボ

電子工作、プログラミングで日々の発見や成果をよろづに

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