- お知らせ -
  • 当wikiのプログラムコードの表示を直してみました(ついでに長い行があると全体が下にぶっ飛ぶのも修正)。不具合があればBBSまでご連絡下さい。

git

はじめに Edit

空のディレクトリをコミットすると上手くいっているように見えて、
cloneとかしてきたりすると、消えてなくなってたりする件について。

どんな時に消えるか?というのがイマイチわからんけど。(←メカニズムの詳細希望)

cvsの仕様を引きずっていてこの仕様は欠点だと思います!!(Subversion(svn)は大丈夫です) gitではファイル単位での管理ぽくて、仕様っぽい…

解決方法 Edit

gitで空のディレクトリを追加するには、空のディレクトリをなくす、よくみかける例では「空の.gitkeepファイルを置く」 ということになっているようです。

※ 私見ですが、git以外も使うかもしれないし、極力依存っぽいファイルは置きたくないこともあります。その場合はディレクトリの説明を書いた readme.txt を置く等でもいいのではないかと。

解決例 Edit

一般的な.gitkeepを追加する例

  • 空のtmpディレクトリを追加したい!!
  • tmpディレクトリを作成
  • tmp/.gitkeep 空ファイルを作成
  • gitでtmp/.gitkeep をステージングして、コミット

以下はcygwinかUnix(Linux)のコマンドラインで試した例:

$ mkdir tmp
$ touch tmp/.gitkeep
$ git add -f tmp/.gitkeep
$ git commit -m "added tmp/ directory" 

一度に空のディレクトリに再帰的に.gitkeepを作成するにはfindを使った以下の方法があるようです。

[[git で空ディレクトリを追加するには - なんとなく日記]http://d.hatena.ne.jp/conceal-rs/20100127/1264573975]] を参考にして、

find . -type d -empty -not -path './.git*' -exec touch {}\/.gitkeep \;

参考リンク Edit


No comment. Comments/git/空のディレクトリが消えているんですけど?

Name:

Front page   Edit Freeze Diff Backup Upload Copy Rename Reload   New Pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2011-12-25 Sun 02:19:39 JST (2101d)