M-am confruntat cu aceeași problemă și am găsit o soluție pentru asta. Am adăugat mai întâi toate fișierele la depozitul central (de asemenea, cele de dezvoltator).
Deci, dacă un dezvoltator preia fișierele din depozit, există și configurarea dezvoltatorului. Când se efectuează o modificare a acestui fișier, Git nu ar trebui să fie conștient de aceste modificări. În acest fel, schimbările nu pot fi împinse / angajate în depozit, ci rămân la nivel local.
Am rezolvat aceasta folosind comanda git: update-index --assume -changed
. Am făcut un fișier de bat care este executat în prebuild pentru proiectele care conțin un fișier ale cărui modificări ar trebui ignorate de Git. Iată codul pe care l-am pus în fișierul de lilieci:
IF NOT EXIST %2%\.git GOTO NOGIT
set fileName=%1
set fileName=%fileName:\=/%
for /f "useback tokens=*" %%a in ('%fileName%') do set fileName=%%~a
set "gitUpdate=git update-index --assume-unchanged"
set parameter= "%gitUpdate% %fileName%"
echo %parameter% as parameter for git
"C:\Program Files (x86)\Git\bin\sh.exe" --login -i -c %parameter%
echo Make FIleBehaveLikeUnchangedForGit Done.
GOTO END
:NOGIT
echo no git here.
echo %2%
:END
În prebuild mea aș fi sunat la fișierul de lilieci, de exemplu:
call "$(ProjectDir)\..\..\MakeFileBehaveLikeUnchangedForGit.bat" "$(ProjectDir)Web.config.developer" "$(SolutionDir)"
Am găsit pe SO un fișier de tip bat care copiază fișierul de configurare corect la web.config / app.config. De asemenea, numesc acest fișier bat în prebuild. Codul pentru acest fișier bat este:
@echo off
echo Comparing two files: %1 with %2
if not exist %1 goto File1NotFound
if not exist %2 goto File2NotFound
fc %1 %2
if %ERRORLEVEL%==0 GOTO NoCopy
echo Files are not the same. Copying %1 over %2
copy %1 %2 /y & goto END
:NoCopy
echo Files are the same. Did nothing
goto END
:File1NotFound
echo %1 not found.
goto END
:File2NotFound
copy %1 %2 /y
goto END
:END
echo Done.
În prebuild mea aș fi sunat la fișierul de lilieci, de exemplu:
call "$(ProjectDir)\..\..\copyifnewer.bat" "$(ProjectDir)web.config.$(ConfigurationName)" "$(ProjectDir)web.config