簡體   English   中英

忽略git commit的某些更改

[英]Ignore certain changes for git commit

我們團隊的成員使用不同版本的visual studio,VS似乎使用以下代碼自動更新sln文件:

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual C# Express 2010

要么

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012

每當我們使用解決方案時。 我們可以配置git來忽略這些變化嗎? 我們對這一行不感興趣,但我們對.sln文件的其他更改感興趣,例如在解決方案中添加新的csproj。

部分忽略文件是不可能的。 一個簡單的解決方案是創建.sln文件的兩個版本,並告訴團隊打開與其版本對應的版本。

另一個解決方案是提交后掛鈎,如果這些行被更改則拒絕提交。 需要一些腳本,但它是可行的。

在本地,你可以簡單地更新git索引以忽略某些文件中的更改,如下所示:

git update-index --assume-unchanged SolutionFile.sln

任何開發人員都可以做同樣的事情。 另一種解決方案是將文件添加到.gitignore如果您不想將其保留在源代碼管理下。

我只是忽略.sln文件,因為它們與構建項目無關:微軟很久以前意識到項目文件必須是可版本化的,並且所有由Studio完成的構建都是由msbuild引擎執行的,它.proj那些.proj (和其他.<whatever>proj ,如.csproj.vbproj等)XML文件並使用它們來構建項目。 這些文件實際上是構建項目所需的一切,解決方案文件只包含各種簿記信息。

您可以向git添加一個塗抹/清除過濾器,它會調用一個腳本來調整特定行,以便在提交時保持一致。 在“ Can git自動在空格和制表符之間切換? ”中,它顯示了如何實現類似的更改,其中空格在結帳時轉換為制表符,並在提交時返回到空格。

您可能需要編寫腳本來識別和修改相關行,而鏈接的示例使用預先存在的unix命令在選項卡和空格之間進行交換。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM