Saya menghadapi masalah yang sama dan saya menemukan solusi untuk itu. Saya pertama kali menambahkan semua file ke repositori pusat (juga yang pengembang).
Jadi, jika pengembang mengambil file dari repositori, konfigurasi pengembang juga ada di sana. Saat mengubah dibuat ke file ini, Git seharusnya tidak menyadari perubahan ini. Dengan cara itu perubahan tidak dapat didorong / dikomit ke repositori tetapi tetap secara lokal.
Saya diselesaikan ini dengan menggunakan perintah git: update-index --assume-unchanged
. Saya membuat file bat yang dieksekusi dalam prebuild proyek yang berisi file yang perubahannya harus diabaikan oleh Git. Berikut kode yang saya masukkan ke dalam file bat:
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
Dalam prebuild saya, saya akan melakukan panggilan ke file bat, misalnya:
call "$(ProjectDir)\..\..\MakeFileBehaveLikeUnchangedForGit.bat" "$(ProjectDir)Web.config.developer" "$(SolutionDir)"
Saya menemukan di SO sebuah file bat yang menyalin file konfigurasi yang benar ke web.config / app.config. Saya juga menyebut file bat ini di prebuild. Kode untuk file bat ini adalah:
@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.
Dalam prebuild saya, saya akan melakukan panggilan ke file bat, misalnya:
call "$(ProjectDir)\..\..\copyifnewer.bat" "$(ProjectDir)web.config.$(ConfigurationName)" "$(ProjectDir)web.config