#author("2017-06-12T23:44:28+09:00","","") #author("2017-06-13T00:10:27+09:00","","") * :RenameLog :config/PageReading をバージョン管理しない [#z085e937] - ページ: BugTrack - 投稿者: [[umorigu]] - 優先順位: 低 - 状態: 提案 - 状態: 却下 - カテゴリー: その他 - 投稿日: 2017-06-11 (日) 23:53:57 - バージョン: 1.5.1 ** メッセージ [#gbedaa00] 開発都合のBugTrackです。 :RenameLog, :config/PageReading がバージョン管理されていると、実サイトでは常に差分となります。 いずれも内容はfreezeだけで、存在していて、初期状態で凍結されていることがその存在意義になっています。 次のどちらかの対応をとりたい。 - リポジトリ管理せず、初期コンテンツに含まない -- 初回更新時に初期コンテンツ分を生成する - リポジトリ管理せず、リリースパッケージ作成時に生成。初期コンテンツに含む ** ファイル [#wdbe02e2] - :RenameLog -- 3A52656E616D654C6F67.txt - :config/PageReading -- 3A636F6E6669672F5061676552656164696E67.txt ** Solution [#k37a53f2] [[qiita.com:usamik26/items/56d0d3ba7a1300625f92]] 既に git 管理しているファイルをあえて無視したい より引用: git でファイルを無視するには、通常は .gitignore や .git/info/exclude を使います。 しかし、既に git 管理下にあるファイルは、これらの設定があっても無視されません。 以下の方法を使えば、git 管理下にあるファイルをあえて無視することが可能です。 ... 方法(2) skip-worktree git update-index --skip-worktree [ファイル名] この設定を取り消すには次のようにします。 git update-index --no-skip-worktree [ファイル名] *** assume-unchanged と skip-worktree の違い この2つは、以下の点が違います。 - assume-unchanged : そのファイルが作業ツリー上で変更されているときでも、git はその変更を無視して変更されていないとみなします。 - skip-worktree : そのファイルが作業ツリー上で変更されているときには、git はその変更を保ちます。 これは、以下のような状況で動作の違いとしてあらわれます。 *** 作業ツリー上でもリポジトリ上でもファイル更新があって、それをマージするとき - assume-unchanged : 作業ツリー上の更新は破棄されて、リポジトリの内容が取り込まれます。 - skip-worktree : 作業ツリー上の更新は保持されて、リポジトリの内容は取り込まれません。 *** 作業ツリー上でファイル更新があって、git reset --hard を実行したとき - assume-unchanged : 作業ツリー上の更新は破棄されます。 - skip-worktree : 作業ツリー上の更新は保持されます。 skip-worktree が、この用途にちょうど使えます。 良いソリューションが見つかったので、ソースコード管理方法の変更はしないことにします。 -------- - :config/PageReading は $pagereading_enable が true でないと変更されませんね。officialで変更があったので勘違いしていました -- [[umorigu]] &new{2017-06-12 (月) 00:46:02}; - 少し調べましたが [[BugTrack/2371]] と同じですね。キリがないので当面現状維持で行きたいと思います -- [[umorigu]] &new{2017-06-12 (月) 01:01:20}; - gitのskip-worktreeという機能で変更ファイルを無視できるようです。これがいいですね [[qiita.com:usamik26/items/56d0d3ba7a1300625f92]] -- [[umorigu]] &new{2017-06-12 (月) 23:44:28}; #comment