質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Q&A

解決済

2回答

4716閲覧

gitignore で除外設定したディレクトリ配下のファイルの除外無効設定

Mild_Boss

総合スコア13

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

0グッド

0クリップ

投稿2018/12/12 06:26

編集2018/12/12 09:13

Git および gitignore の除外設定の質問です。

Git 2.7 以降、以下のように gitignore で除外したディレクトリの配下あるファイルを ! で直接管理に再び含めることができるとリリースノートにあったのですが、現在は無効になっているのでしょうか?

/abc !/abc/def

このような設定をしたかったのですが、当方の環境(Git 2.19.1)では出来ません。

公式のリリースノートには以下のようにありました。

Allow a later "!/abc/def" to override an earlier "/abc" that

appears in the same .gitignore file to make it easier to express
"everything in /abc directory is ignored, except for ...".

参考: Atlassian - Git 2.7 の優れた新機能

その後の公式のリリースノートをすべて調べたわけではないですが、見つけられなかったので設定ミスかと思って以下のような試行錯誤をしました。

  • .git/info/exclude になにか変な記述がないか
  • .gitignore の他の記述やタイプミスの検証
  • 他のディレクトリにある .gitignore ファイルの検証

問題の切り分けとしてそもそも私の設定ミスなのか Git 側でこの機能がなくなったのかをはっきりさせたかったので質問させていただいた次第です。
ご存知の方はお教えいただければ幸いです。

(追記開始:2018/12/12 #1)
解決策として対象ファイルを格納しているディレクトリを gitignore で除外解除すればいいとは知っています。

ただし、あるディレクトリ配下のファイルすべてを除外設定したあとで更にそのディレクトリ配下のディレクトリにあるファイルを再び管理したい場合、現状は バージョン 2.6 以下でしていた冗長な書き方にならざるを得ないのかということが気になっています。

/a/* #一旦すべてのファイルを除外 !/a/b /a/b/* !/a/b/target_file # このファイルだけを除外する

せっかく Git 2.7 で簡潔な書き方が出来るようになったのはずなので、その設定が使えればと思っていますが、その後この機能が無くなってしまったのでしょうか…?
(補足終了)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

動かないのは確かなので愚直に直上のディレクトリまでを除外解除します。
おそらくどこかのバージョンで Git 2.7 の該当機能がリバートされたと思います。

投稿2018/12/13 07:09

Mild_Boss

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

こちらが非常に参考になると思います。
https://qiita.com/NumAniCloud/items/fd452828f634b577ae28

投稿2018/12/12 07:11

intelf___

総合スコア868

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Mild_Boss

2018/12/12 09:22

ご回答いただきありがとうございます。 もう少し具体的な情報を質問文に補足しました。 ディレクトリの階層が深くない場合はそのような指定でもその記事の方法でもよいと思います。 ただし、上位のディレクトリですべてのファイルを除外設定している場合どうも書き方が冗長になってしまうので困っていました。 そこで、Git2.7の新機能であった書き方が簡潔にできて良いと思ったのですが、 そもそもそんな複雑な状況以前に Git2.7の公式リリースノートにあった例ですら私の環境(Git2.7)では動かなかったので質問させていただきました。 つまり、Git 2.7 で出来た gitignore の新機能がその後のバージョンアップで消えている気がするが、それは自分の設定ミスなだけなのか他の方の近いバージョンでも起こっているのか?ということが質問の意図のひとつであります。 そのQiitaの記事は検証した Git のバージョンなどの情報がないので、せっかくですがあまり参考になりませんでした。 以上よろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問