gitサブディレクトリ下のファイル管理
日頃週報とか議事録とか頻繁に書くことがあって、
自分のノートPCと研究室マシンと自宅マシンで同期を取りたい。
別にオンラインストレージ使えよって話なんですが、
Dropboxの容量を潰したくないのと、gitに慣れる意味合いを兼ねて
調べてました。
一連の流れ
$ mkdir aaa $ cd aaa $ touch README $ echo "initial commit" > README $ git init $ git add . $ git commit -m "initial commit" $ git push origin master
前提
gitosisを使っているので、gitosis-admin/gitosis.confの中身にちゃんと以下を追記。
[group hoge] writable = hogehoge member = hogehoge@fedora
躓き1
まず、remoteの設定をやっていなくて、
$ git push origin master fatal: 'origin' does not appear to be a git repository fatal: The remote end hung up unexpectedly
がひたすらターミナルを埋め尽くした。
解決
ちゃんとリモートの設定をしましょう。
$ git remote add origin git@鯖名:リポジトリ名
もし、この段階でミスっても、.git以下のconfigに記述されるので
そっちを変更すればなんとかなりました。
躓き2
主に1よりも長い間こっちで躓いていたのは内緒。
普通に、
$ git add . $ git commit -m "hogehoge" $ git push origin master
として、他の環境でclone or pullします。
しかし、サブディレクトリ以下のファイルが反映されていなかった。
解決
git submoduleとかいろいろ調べた結果、git add時に指定すれば大丈夫でした。
つまり、
$ git add .
ではなく、
$ git add *
とする。もちろん、*を特定のディレクトリやファイル指定でもOK。
あとは同じ手順。
こんな落とし穴に落ちてしまうとは.......反省。