Jakie pliki powinien śledzić git w projekcie C++ w Visual Studio 15 2017? Wzoruję się na konfiguracji z tej stronki:
https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
Oczywiście odrzuciłem wszystkie pliki generowane na podstawie kodu oraz cache Visual Studio. Odrzuciłem także wszystkie pliki *.user (to z wzorcowej konfiguracji z linku), bo zgaduję, że każdy użytkownik może sobie je zmieniać i nie chcemy o tym powiadamiać reszty. Mój obecny .gitignore wygląda tak:
.vs/
[Dd]ebug
[Rr]elease
*.user
Obecnie zastanawiam się nad plikami ProjectName.vcxproj i ProjectName.vcxproj.filters.
ProjectName.vcxproj - każdy użytkownik musi go mieć, ale ten plik zawiera ścieżki bezwzględne do bibliotek z jakich korzysta projekt. Na przykład:
<AdditionalLibraryDirectories>
D:\SFML-2.4.2\lib;%(AdditionalLibraryDirectories)
</AdditionalLibraryDirectories>
Jeżeli któryś z członków zespołu trzyma bibliotekę w innym miejscu i wskaże ścieżkę do niej Visualowi, git będzie go informował o zmienionym pliku. Wzorcowa konfiguracja .gitignore z linku zaleca śledzić ten plik, ale wtedy pojawia się problem który opisałem wyżej. Jak to porządnie rozwiązać?
ProjectName.vcxproj.filters - tutaj przechowywane są - z tego co widzę - wszystkie pliki w projekcie. Plik zawiera na przykład taki fragment:
<ItemGroup>
<ClCompile Include="stdafx.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
Tu pojawia się taki problem, że gdybym śledził ten plik, to z każdym nowym plikiem *.cpp lub *.hpp w projekcie muszę do gita dołączyć nie tylko ten plik (np. NewClass.hpp), ale również zmodyfikowany plik ProjectName.vcxproj.filters. Czy to normalne w VisualStudio, czy coś robię źle?