Win7 Pro 64ビットマシンには、Gitを備えたTortoiseGitとcygwinがあります。保留中の変更を見つけようとすると、cygwinとTortoiseGitから異なる結果が得られます。 cygwingitの結果は間違っていると確信しています。
Cygwinのgitが、これらのファイルに触れなかったとしても、このすべてのファイルが変更されたと報告するのはなぜですか?
TortoiseGitの出力(正しい):
Cygwin gitの出力(間違っている):
$git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: .classpath
# modified: .gitignore
# modified: belipro.xml
# modified: etc/buildnum.properties
# modified: etc/db/adjust.sql
# modified: etc/db/update11.sql
# modified: etc/db/update12.sql
# modified: etc/Excel-template/Anlagen.xls
# modified: etc/projektierbareTemplaes/templateA.rtf
# modified: etc/test/belipro.sql.Zip
# modified: lib/commons-lang-2.6.jar
# modified: lib/jacob-1.14.3-x86.dll
# modified: lib/jacob.jar
# modified: res/ch/pp/belimed/bo/planung/ArbeitsStundenResourcePack.Java
# modified: res/ch/pp/belimed/bo/planung/AufgabeAuftragResourcePack.Java
# modified: res/ch/pp/belimed/bo/planung/AufgabeResourcePack.Java
# modified: res/ch/pp/belimed/bo/planung/arbeitsstunden 32x32.png
# modified: res/ch/pp/belimed/bo/planung/arbeitsstunden 64x64.png
# modified: res/ch/pp/belimed/bo/planung/aufgabe 32x32.png
# modified: res/ch/pp/belimed/bo/planung/aufgabe 64x64.png
# modified: res/ch/pp/belimed/bo/planung/aufgabeauftrag 32x32.png
# modified: res/ch/pp/belimed/bo/planung/aufgabeauftrag 64x64.png
# modified: res/ch/pp/belimed/bo/projekt/DruckbehaelterResourcePack.Java
# modified: res/ch/pp/belimed/bo/projekt/EldResourcePack.Java
# modified: res/ch/pp/belimed/bo/projekt/WtdResourcePack.Java
# modified: res/ch/pp/belimed/bo/projekt/druckbehaelter 32x32.png
# modified: res/ch/pp/belimed/bo/projekt/druckbehaelter 64x64.png
# modified: res/ch/pp/belimed/bo/projekt/eld 32x32.png
# modified: res/ch/pp/belimed/bo/projekt/eld 64x64.png
# modified: res/ch/pp/belimed/bo/projekt/projektierbar 32x32.png
# modified: res/ch/pp/belimed/bo/projekt/projektierbar 64x64.png
# modified: res/ch/pp/belimed/bo/projekt/wtd 32x32.png
# modified: res/ch/pp/belimed/bo/projekt/wtd 64x64.png
# modified: res/ch/pp/belimed/bo/util/BatchResourcePack.Java
# modified: res/ch/pp/belimed/bo/util/TypResourcePack.Java
# modified: res/ch/pp/belimed/Explorer/BeliproExplorerComponentFactoryResourcePack.Java
# modified: res/logging.properties
# modified: src/ch/pp/belimed/bo/planung/Aufgabe.Java
# modified: src/ch/pp/belimed/bo/planung/AufgabeAuftrag.Java
# modified: src/ch/pp/belimed/bo/planung/Auftrag.Java
# modified: src/ch/pp/belimed/bo/planung/InternerAuftrag.Java
# modified: src/ch/pp/belimed/bo/planung/Meilenstein.Java
# modified: src/ch/pp/belimed/bo/planung/MeilensteinTyp.Java
# modified: src/ch/pp/belimed/bo/planung/MitarbeiterAuftrag.Java
# modified: src/ch/pp/belimed/bo/planung/Planung.Java
# modified: src/ch/pp/belimed/bo/planung/Sammelauftrag.Java
# modified: src/ch/pp/belimed/bo/projekt/ProjektStatus.Java
# modified: src/ch/pp/belimed/bo/util/Batch.Java
# modified: src/ch/pp/belimed/bo/util/Bezeichnung.Java
# modified: src/ch/pp/belimed/Explorer/BeliproExplorerComponentFactory.Java
# modified: src/ch/pp/belimed/ui/planung/AufgabeSearchPanel.Java
# modified: src/ch/pp/belimed/ui/planung/InternerAuftragDetailPanel.Java
# modified: src/ch/pp/belimed/ui/planung/MitarbeiterAuftragDetailPanel.Java
# modified: src/ch/pp/belimed/ui/planung/MitarbeiterDetailPanel.Java
# modified: src/ch/pp/belimed/ui/projekt/AnlageSearchPanel.Java
# modified: src/ch/pp/belimed/ui/projekt/KundeSearchPanel.Java
# modified: src/ch/pp/belimed/ui/projekt/PlanungAssigner.Java
# modified: src/ch/pp/belimed/ui/util/BatchDetailPanel.Java
# modified: src/ch/pp/belimed/util/DbVersion.Java
# modified: src/ch/pp/belimed/util/ReleaseInfo.Java
# modified: src/ch/pp/util/DateUtils.Java
# modified: test/ch/pp/belimed/bo/planung/AufgabeTest.Java
#
no changes added to commit (use "git add" and/or "git commit -a")
行末が疑われます。 Tortoise gitが他のネイティブWindowsバージョン管理クライアントのように機能する場合、チェックアウトされたファイルにキャリッジリターンを自動的に追加し、リポジトリ内のファイルと比較するときにそれらを再度削除することを認識します。優れたUnix市民であるCygwingitはそのようなことを何もしないので、Tortoiseが変更として追加したキャリッジリターンを確認します。
話の教訓:特定のチェックアウトでは、TortoisegitまたはCygwingitのいずれかに固執します。そうしないと、行末がひどく混ざってしまいます。クライアントを混在させないもう1つの理由は、クライアントが.gitディレクトリにデータを格納する方法に違いがある可能性があることです。
(他のバージョン管理システムにも同じアドバイスが当てはまります。)
最初は空白を考えていましたが、そこにも.pngがいくつかあります。
おそらくそれはファイルモードの変更です。試してみてください。
git config core.filemode false
それが機能せず、唯一の違いが変更タイムスタンプである場合は、試してみてください。
git config core.trustctime false
(もちろん、falseをtrueに変更するコマンドを繰り返すことで、これらのいずれかを元に戻すことができます)
TortoiseGit <1.8.13.0はCygwinGitをサポートしていませんでした。 新しいバージョン が必要です。
1)[CYGWIN-INSTALL-PATH]\bin-folderをgit.exeフォルダーとして選択します。
2)CygwinとTortoiseGitが同じホームディレクトリとグローバルgit-configを使用するように、WindowsでHOME環境変数を構成します。ここでは通常のWindows表記を使用します(例:「C:\ Users\USERNAME」)。デフォルトでは、TortoiseGitは通常c:\ Usersの下にあるWindowsホームディレクトリを使用し、Cygwinは[CYGWIN-INSTALL-PATH]\homeの下にある独自のホームディレクトリを使用します。
3)AutoCrLfを構成します。これは、TortoiseGitとCygwinGitのデフォルトが異なるために必要です。 CygwinGitのデフォルトはtrueです。
4)「詳細設定」というセクションのTortoiseGitに移動し、CygwinHackをtrueに設定して、cygwinの回避策をアクティブにします。
5)再起動します。
https://tortoisegit.org/docs/tortoisegit/tgit-dug-settings.html および https://tortoisegit.org/issue/56 に基づく