contentgitのベアリポジトリとノンベアリポジトリGitはじめにリーナス・トーヴァルズはgitを10日間で作ったとか、神はいるんだねえ。開発用Macでコーディング、その後サーバにpushして...という僕のような開発スタイルの場合、githubにpushするという仕組みに必要性を感じなくて、開発用クライアント(Mac)対本番用サーバ(linux)間でのgitの関係を理解して、やっとgitを使う必要性が見えてきたのでした。サルわかもリモートリポジトリでBacklogあたりでわかんなくなってた。gitのリポジトリとかの概念blanchとかmasterとかの以前に、リポジトリと作業ディレクトリの概念、bareとnon-bareリポジトリについてbare[ベア]とはbareとは裸の、とか剥き出しとかいう意味ベアリポジトリは作業ディレクトリを持たない。更新されたとか情報のみを持つ。ディレクトリ名は「hogehoge.git」のように".git"を付ける。ここが一番わかりやすかった。※non-bareも.git付けてるのが気になるところですが(小声)前提クライアントとサーバ間はローカルLAN上にあり、sshログインできるようにしてあることディレクトリ名は以下のようにします。1.クライアントPC:開発用ディレクトリ(non-bareノンベアリポジトリ)=>/home/clientusername/www_dev2.サーバ(IP:192.168.0.1)本番用ディレクトリ(non-bare)=>/home/serverusername/www_product+リモートリポジトリ(bareベアリポジトリ)=>/home/serverusername/www.git実際は開発用ディレクトリwww_devと本番用ディレクトリwww_productの名前は一緒なことが多いと思いますが、説明上わけがわからなくなるので。index.htmlgitの管理下(non-bareリポジトリ)にします自分の理解ではnon-bareリポジトリ=作業用ディレクトリは同じで、ディレクトリ名に.gitを付けないことでリモートリポジトリと区別されます。--sharedオプションを付けるのはグループで共有するため(パーミッションが違う)個人ユーザーのみの場合は特に付けなくても良い。--sharedPC側からリモートリポジトリにpushするgitの解説サイトでoriginっていうのを盲目的に使っているが、要はエイリアス名なのでなんでもいい。僕もなんでoriginなんだろう。弁当かよ...って思ってましたが、このリンクを読んで納得。ssh://serverusername@192.168.0.1:/home/serverusername/www.git↓originじゃなくてもhottomottoでもいいのです。ssh://serverusername@192.168.0.1/home/serverusername/www.git確認してみます。sshのポートを22番から変えている人は:port_noが必須です。(push)これでpushの準備は完了。ここでサーバ側を見てみることにします。yetマスターブランチにはまだコミットが無いよ!と叱られます。masterずらずらとファイルが転送されたご様子。commitが反映されています。重要なのはリモートリポジトリはbareであるという点です。lsでディレクトリを見てみてください。refsクライアント側で作成したindex.htmlはここには存在しません。www.gitとするとwwwディレクトリが作成されます。ディレクトリ名をbareリポジトリと違う名称にしたい場合は最後にディレクトリ名を付けます。www_productwww_productディレクトリができました。index.htmlがあるだけ。commitちなみにこのディレクトリはbareリポジトリをcloneしただけなのでリモートリポジトリはoriginです。hokkahokkaはクライアント側のエイリアスだったことがわかります。world!!!!!!」に変更します。その後コミットし、pushします。commitが反映されています。commitが反映されています。Railsの開発が主です。upLoginユーザーは見つかりませんでした。