GitでBareリポジトリを使う

こないだからGitの導入で四苦八苦していた。

と言うのも、基本的に一人で開発しているので、Gitのリポジトリもnon-Bareリポジトリで使っていた。

しかし、これは本来の使い方ではなくて、一人だから許せるGitの使い方なのだ。

リモートにノンベアリポジトリを作ってそこに直接プッシュすると言うのはとってもお手軽で、この方法で俺自身もGitでソース管理出来る様になったわけだが知れば知るほど、この方法では危険が伴うという事を知った。

一人だからコンフリクトもしないしファイルの実態を直接リポジトリに上げても問題は起きないわけだが、例えば複数で管理しようとしたばあい、実態のファイルをプッシュし合ってしまう可能性があるわけで、そうなるとファイルが壊れるとか色々と問題が発生することを想定できるので、たとえ一人といえども、ちゃんとした使い方をしておいた方が良いと思ったのだ。

そこで、色々と調べてBareリポジトリを使う事を知ったわけだが、BareオプションをつけてGit init しても、1台はうまくいっても、別のロケーションでプルが出来ず実態がないのでリポジトリは空でコミットの情報だけがプルされていて、見るだけしか出来ない。

なので、じっくりとこのあたりの作成方法を読み込んでようやく理解できて別のロケーションや端末で前と同じようにノンベアリポジトリでやっていた事が出来る様になった。

基本的に自鯖があるので、Githubなどを使わず、全部オリジナルでリポジトリを作っている。

俺が理解した手順だが

1.lolipopにまずはBareリポジトリを作る。(git init –bare –shared)

2.lolipopにノンベアリポジトリを作る。(git init)

3.lolipo上のノンベアリポジトリでbareリポジトリと連結させる

4.ローカルリにノンベアリポジトリを作って、フェチ、プル、プッシュしていく

とざっくりとこんな手順で作成した。

参考にしたサイト「Gitでリモートリポジトリを操作する」ここにWindowsにGitのリポジトリを作る方法が書いてあって、ここが参考になった。

他にも色々書いてあるサイトはあるのだが、全く理解できずちんぷんかんぷんでここにたどりついたわけだ。

要するに、リモート側でBareとノンBareのGit管理の構造を構築して、ローカル側から、Bareリポジトリにつないで横取りする様なイメージだ。

ただ、LolipopのサーバだとGitのDaemonが動かないのでどうなるのかいまいちわからないが、一応テストしてローカルで編集した内容が別のPCでプル出来るかどうかやったところ、変更内容も反映してプル出来たのでうまくいっているのだろう。

これで、今迄つくったローカルリポジトリを全部Bareリポジトリ管理に置き換える事にしたので、この土日は忙しい。

もちろん、GitクライアントにはGitKraken Proを使っているのでとても楽しく管理する事ができる。

SouceTreeで始めたのだが、これは重くて未だにエラーも多く、使い勝手は悪い。

良く初心者ならSouceTreeから始めておけなんて記事も目にするが、すごくわかりにくくて最初から躓くのではないかと思う。

その点、GitKrakenは初心者いもかなりわかりやすくて、後発だけに、色々と操作性が優れていて、一番基本のDiffが素晴らしく、VScodeと同じエディターのエンジンを使っていて簡単な編集まで出来てしまう。

超おすすめGitクライアントだ。