排除 Git 中受控文件的更改
Exclude changes in controlled files in Git
我正在使用 Visual Studio(Professional 2019)和 Git 通过 Git Changes 集成。我一直在使用 TFS,但我们决定在新开发中使用 Git 个项目。我在 .gitignore
文件中添加了一些东西,例如忽略 .vs
文件夹等。它似乎可以正常工作 只要还没有添加东西 在之前。到目前为止,还不错。
但现在我们遇到了一个问题,我们对 launchSettings.json
和 appsettings.Development.json
文件以及 App_Data
文件夹进行了不同的更改。
我不明白的问题是,我们都希望这些文件在 Git 中 受控 ,存在于 repo 中。但我们希望排除 本地更改形式被推送到任何地方。
因此我们找到了有关 .git/info/exclude
文件的信息。那太好了。但是好像并没有解决问题,因为一旦一个文件被控制了,我们就不能排除我们自己对那个文件的修改。它仅适用于文件完全不受控制的情况。这是我完全不确定的地方,但似乎是这样。
当我们使用 TFS 控件时,我们可以 Visual Studio 只需右键单击该文件并选择“排除”,它就会出现在“已排除”中changes" 列表,而不是用变更集签入。
但这在 Git 中是不可能的。至少不是来自 Visual Studio。唯一可用的选项是 撤消更改 除了责备(注释)和舞台。但是我们不想撤消我们的更改。我们只想推送我们的更改而不包含更改。
我在这里做错了什么?请赐教。我显然在这里遗漏了一些东西。
Team Foundation 版本控制 (TFVC) 是一个集中式版本控制系统。同时,Git是一个分布式版本控制系统。它们是不同的版本控制系统,因此具有不同的操作。参见:Choosing the right version control for your project 了解详情。
在 TFVC 存储库中,我们只需右键单击该文件并选择“排除”,然后我们将检查除该文件以外的所有更改,如该线程所述: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? as PWND suggested to use Git commands to implement this. Or we could use Git stage command to avoid this file to be commit as fredrik suggested, see: https://www.nobledesktop.com/learn/git/stage-commit-files 了解详情。
此外,您可以尝试设置branch policies, so code merging to master must via pull request,然后保护目标文件。
我正在使用 Visual Studio(Professional 2019)和 Git 通过 Git Changes 集成。我一直在使用 TFS,但我们决定在新开发中使用 Git 个项目。我在 .gitignore
文件中添加了一些东西,例如忽略 .vs
文件夹等。它似乎可以正常工作 只要还没有添加东西 在之前。到目前为止,还不错。
但现在我们遇到了一个问题,我们对 launchSettings.json
和 appsettings.Development.json
文件以及 App_Data
文件夹进行了不同的更改。
我不明白的问题是,我们都希望这些文件在 Git 中 受控 ,存在于 repo 中。但我们希望排除 本地更改形式被推送到任何地方。
因此我们找到了有关 .git/info/exclude
文件的信息。那太好了。但是好像并没有解决问题,因为一旦一个文件被控制了,我们就不能排除我们自己对那个文件的修改。它仅适用于文件完全不受控制的情况。这是我完全不确定的地方,但似乎是这样。
当我们使用 TFS 控件时,我们可以 Visual Studio 只需右键单击该文件并选择“排除”,它就会出现在“已排除”中changes" 列表,而不是用变更集签入。
但这在 Git 中是不可能的。至少不是来自 Visual Studio。唯一可用的选项是 撤消更改 除了责备(注释)和舞台。但是我们不想撤消我们的更改。我们只想推送我们的更改而不包含更改。
我在这里做错了什么?请赐教。我显然在这里遗漏了一些东西。
Team Foundation 版本控制 (TFVC) 是一个集中式版本控制系统。同时,Git是一个分布式版本控制系统。它们是不同的版本控制系统,因此具有不同的操作。参见:Choosing the right version control for your project 了解详情。
在 TFVC 存储库中,我们只需右键单击该文件并选择“排除”,然后我们将检查除该文件以外的所有更改,如该线程所述: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? as PWND suggested to use Git commands to implement this. Or we could use Git stage command to avoid this file to be commit as fredrik suggested, see: https://www.nobledesktop.com/learn/git/stage-commit-files 了解详情。
此外,您可以尝试设置branch policies, so code merging to master must via pull request,然后保护目标文件。