git - 排除 Git 中受控文件的更改

标签 git visual-studio azure-devops visual-studio-2019

我正在使用 Visual Studio(Professional 2019)和通过 Git Changes 进行的 Git 集成。我一直在使用 TFS,但我们决定在新开发上使用 Git 项目。我在 .gitignore 文件中添加了一些东西,例如忽略 .vs 文件夹等。它似乎可以工作 只要事情还没有添加之前。到目前为止,还不错。

但现在我们遇到了一个问题,我们对 launchSettings.jsonappsettings.Development.json 文件以及 App_Data 等文件进行了不同的更改 文件夹。

我不明白的问题是我们都希望这些文件在 Git 中被控制,存在于 repo 中。但我们希望排除本地更改不会被推送到任何地方。

于是我们找到了关于.git/info/exclude文件的信息。那太好了。但是好像并没有解决问题,因为一旦一个文件被控制了,我们就不能排除我们自己对那个文件的修改。它仅适用于文件完全不受控制的情况。这是我完全不确定的地方,但似乎是这样。

当我们使用 TFS 控件时,我们可以从 Visual Studio 中右键单击该文件并选择“排除”,它会出现在“排除的更改”列表中并且不会被 checkin 与变更集。

但这在 Git 中是不可能的。至少不是来自 Visual Studio。除了 Blame(注释)和 Stage 之外,唯一可用的选项是撤消更改。但是我们不想撤消我们的更改。我们只想推送我们的更改而不包含更改。

我在这里做错了什么?请赐教。我显然在这里遗漏了一些东西。

最佳答案

Team Foundation 版本控制 (TFVC) 是一个集中式版本控制系统。同时,Git 是一个分布式版本控制系统。它们是不同的版本控制系统,因此具有不同的操作。请参阅:Choosing the right version control for your project了解详情。

在 TFVC 存储库中,我们可以右键单击该文件并选择“排除”,然后我们将除该文件之外的所有更改都 checkin 此线程:How to ignore files/directories in TFS for avoiding them to go to central source repository?描述。

但是,此操作在 Git 存储库中不可用,我们可以关注此线程:How to stop tracking and ignore changes to a file in Git?正如 PWND 建议使用 Git 命令来实现它。或者我们可以使用 Git stage 命令来避免按照 fredrik 的建议提交此文件,请参阅:https://www.nobledesktop.com/learn/git/stage-commit-files了解详情。

此外,您可以尝试设置branch policies , 所以 merge 到 master 的代码必须通过 pull request , 然后保护目标文件。

关于git - 排除 Git 中受控文件的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66852072/

相关文章:

asp.net - 如何在没有源代码管理凭据的情况下转换 web.config 中的 mailSettings

Azure Pipelines,迭代文件

git - 在现有的 SVN 仓库上使用 git

c# - 为什么这个 Visual Studio 计时器组件在设计时工作?

c++ - 如何使用 pch.h 修复意外的文件结尾错误

c++ - 链接错误libboost_filesystem-vc140-mt-1_61.lib,但我有boost_filesystem-vc140-mt-1_61.lib

git - 如何使用 PowerShell 在 Azure DevOps 管道中运行 git Push?

java - 我可以重新导入已删除的 .git 文件而不丢失代码吗?

git - 使用 git 扩展如何在不更改我的功能分支的情况下将我的功能分支 merge 到主分支中?

git - 损坏的 Git 存储库(数据流错误)