मुझे एक ही समस्या का सामना करना पड़ा और मुझे इसके लिए एक समाधान मिला। मैंने पहली बार सभी फाइलों को केंद्रीय भंडार (डेवलपर भी) में जोड़ा।
तो यदि कोई डेवलपर रिपोजिटरी से फ़ाइलों को प्राप्त करता है तो डेवलपर कॉन्फ़िगरेशन भी होता है। इस फ़ाइल में बदलते समय, गिट को इन परिवर्तनों से अवगत नहीं होना चाहिए। इस तरह के परिवर्तन को भंडार में धक्का / प्रतिबद्ध नहीं किया जा सकता है लेकिन स्थानीय रूप से रहना चाहिए।
मैंने गिट कमांड का उपयोग करके इसे हल किया: update-index --assume-unchanged
। मैंने एक बैट फ़ाइल बनाई है जिसे परियोजनाओं के प्रीबिल्ड में निष्पादित किया गया है जिसमें एक फ़ाइल है जिसमें परिवर्तन गिट द्वारा अनदेखा किया जाना चाहिए। बैट फ़ाइल में मैंने जो कोड डाला है वह यहां दिया गया है:
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
मेरे प्रीबिल्ड में मैंने बल्ले फ़ाइल को कॉल किया था, उदाहरण के लिए:
call "$(ProjectDir)\..\..\MakeFileBehaveLikeUnchangedForGit.bat" "$(ProjectDir)Web.config.developer" "$(SolutionDir)"
मैंने SO बैट फ़ाइल पर पाया जो सही कॉन्फ़िगरेशन फ़ाइल को web.config / app.config पर कॉपी करता है। मैं प्रीबिल्ड में इस बल्ले फ़ाइल को भी कॉल करता हूं। इस बल्ले फ़ाइल के लिए कोड है:
@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.
मेरे प्रीबिल्ड में मैंने बल्ले फ़ाइल को कॉल किया था, उदाहरण के लिए:
call "$(ProjectDir)\..\..\copyifnewer.bat" "$(ProjectDir)web.config.$(ConfigurationName)" "$(ProjectDir)web.config