web-dev-qa-db-ja.com

ファイルの内容が同じままの場合、gitに変更日の変更を無視させる

さまざまなxmlファイルを生成および変更するpythonスクリプトがあります。これらは、ファイルを開き、それに基づいてElementTreeオブジェクトを作成し、必要に応じてオブジェクトのコンテンツを変更して保存するように機能します。オブジェクトをOriginファイルに追加します。

問題は、ファイルの内容を少しでも変更しない場合があるということです。ただし、ファイルの変更日は変更されます。

一方、Gitは、変更日が変更されたことに気付くため、これらのファイルを「変更済み」として扱います。差分は作成されませんが(明らかに)。

citoolクレイジーに動作します(日付が変更されたがファイル自体は変更されていないことを警告し、再スキャンを試みて、もう一度「変更済み」として表示します)

私はそれらのpythonスクリプトを変更するためのアクセス権を持っていないので、それらを書き直すことはオプションではありません(それらは別のリポジトリに保存され、頻繁に変更されます)。変更日を無視するようにgitに指示する方法はありますか?特定のフォルダの変更?実際にはそのうちの1つだけが実際に変更されたのに、何十もの「変更された」ファイルを見るのは非常に面倒です。

すべてのファイルをステージングしてからステージングを解除できることはわかっていますが、省略したい追加のアクションがいくつか必要です。また、通常のgitワークフローを妨げるだけの場合もあります。

pdate: git citool error read(quote): "違いは検出されませんでした。<file>に変更はありません。このファイルの変更日は別のアプリケーションによって更新されましたが、ファイル内の内容は変更されませんでした。同じ状態の可能性がある他のファイルを見つけるために、再スキャンが自動的に開始されます。」

その後、再スキャン後、すべての偽の変更されたファイルが再び表示されます。

git statusは、これらのファイルも「変更済み」として表示します

15
Dmitriy M

影響を受けるすべてのファイルに対してgit addを実行できます。その後、git statusで変更されたファイルの表示が停止します(変更がない場合、実際にはコミット用にステージングされません)。少なくともそれは私にとってはうまくいきました(私はgit2.8.1を使用しています)。

20
Anton Savin

Gitは変更時間の変更を報告しません。

$ git init
Initialized empty Git repository in /home/choroba/...
$ echo > a
$ git add a
$ git commit -m init
[master (root-commit) d686390] init
 1 file changed, 1 insertion(+)
 create mode 100644 a
$ touch -m a
$ git status
On branch master
nothing to commit, working directory clean
3
choroba