c# - Git忽略对单行的更改

标签 c# git gitignore gitattributes

我知道如何使用 gitattributes 完全忽略 git 中的特定行(请参阅 How to tell git to ignore individual lines, i.e. gitignore for specific lines of code ),但我将如何忽略对特定行的更改

我假设我们可以非常相似地使用过滤器,但我不知道我的 sed 脚本应该做什么来忽略对行的更改。

举一个实际的例子,我正在编写一个 C# 库,它需要一个特定的构建输出路径,具体取决于它作为子模块使用的项目。因此,无论在何处使用它都必须手动配置,但不得将更改提交给库本身。

原始库.csproj:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    ...
    <OutputPath>bin\Debug\</OutputPath>
    ...
</PropertyGroup>

子模块库.csproj:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    ...
    <OutputPath>..\Target\</OutputPath>
    ...
</PropertyGroup>

如何让 git 忽略对这一行的更改?

最佳答案

使用 git,无法忽略一行代码。一旦文件被跟踪,整个文件就会被索引。

调用您的项目的周围代码不应更改构建位置的输出,而应将构建的输出复制到正确的位置。这样您就不会破坏子模块的完整性。

如果您需要动态更改构建的输出位置,您可以使用在构建之前设置的环境变量。这样,您可以通过更改环境变量的值来更改该位置。

关于c# - Git忽略对单行的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61091219/

相关文章:

git - 从 IntelliJ IDEA 的版本控制中删除文件

C# UdpClient——Ttl 属性与 SetSocketOption

c# - 执行流程链

git - 使用 vimdiff 强制 git show 显示差异

git - 将源代码文件的 Git 存储库从 ISO-8859-1 编码切换为 UTF-8 编码

linux - 使用 .tarignore 文件从 tar 存档中排除目录

c# - 我如何解析字符串或提取位于 c# ASP.Net 中的多括号、冒号、方括号、分号和更多特殊字符之间的文本

c# - 同一引用程序集的多个版本

git - 解决来自 am session 的冲突

android - 我应该在 Android Studio 中对应用程序/构建文件进行版本控制吗?