Git——“skip-worktree”选项的SourceTree自定义操作

本文介绍了如何在Git中处理希望跟踪但忽略本地更改的文件,如web.config,特别是针对ASP.NET开发者的数据库连接字符串。文章详细讲解了从命令行使用skip-worktree选项,以及如何在SourceTreeGitGUI中通过自定义操作实现这一功能,包括添加忽略本地更改、恢复跟踪以及列出带标记文件的方法。
摘要由CSDN通过智能技术生成

目录

1. 问题

2. 从命令行使用skip-worktree

3. SourceTree Git GUI——添加自定义操作

3.1. 忽略本地更改(skip-worktree)

3.2. 不忽略本地更改(skip-worktree)

3.3. 列出所有带有skip-worktree标记的文件

4. 结论

5. 参考资料


1. 问题

如果你有一个像web.config这样的配置文件需要由Git跟踪,但希望忽略本地更改,那么这种情况无法用.gitignore解决。适当的方法是在Git中使用skip-worktree选项。

.gitignore文件的用法非常流行,在其他地方有很好的描述,所以我不会详细介绍。值得一提的是,此方法计划应用于您希望GLOBALY UNTRACK的文件。Git在使用该存储库的所有系统上完全忽略了.gitignore中的文件。

skip-worktree选项是一个鲜为人知的Git选项。此方法计划应用于要忽略的TRACKEDLOCAL CHANGES的文件。跟踪文件,忽略本地更改的用例非常强大。仅提每个开发人员ASP.NET都会使用至少一个数据库连接字符串进行本地修改的web.config文件。您希望跟踪该文件,因为这是应用程序的重要组成部分,但您希望忽略对本地系统的更改,因为您的本地版本将包含您的本地设置,这些设置对于项目中的每个开发人员都不同。

有关在Git中忽略文件的方法的更多讨论,请参见[1]

2. 从命令行使用skip-worktree

以下是此方法所需的命令:

To ignore local changes to tracked files:
git update-index --skip-worktree  [<file>...]

To track local changes again:
git update-index --no-skip-worktree [<file>...]

To list all files marked with skip-worktree:
git ls-files -v | grep ^S

3. SourceTree Git GUI——添加自定义操作

一个非常流行的Git GUISourceTree。开箱即用,它不支持skip-worktree选项。幸运的是,它允许定义自定义操作,我们将使用这些操作来使用skip-worktree管理工具扩展其GUI

我们的目标是添加如下图所示的自定义操作:

3.1. 忽略本地更改(skip-worktree

以下是设置此选项的方法:

下面是一个示例执行(通过上下文菜单)

3.2. 不忽略本地更改(skip-worktree)

下面是你如何设置这个选项:

下面是一个示例执行(通过上下文菜单)

3.3. 列出所有带有skip-worktree标记的文件

这个设置有点复杂。它涉及到创建一个脚本ListFilesSkipWorktree.bat

"c:\Program Files\Git\bin\git.exe" ls-files -v | "C:\WINDOWS\system32\findstr.exe" /b S

下面是一个示例执行(通过上下文菜单)

4. 结论

跟踪文件,忽略本地更改的用例非常强大。仅提每个开发人员ASP.NET都会使用至少一个数据库连接字符串进行本地修改的web.config文件。在这种情况下使用.gitignore并不能解决问题。适当的方法是在Git中使用skip-worktree选项。

非常流行的Git GUI SourceTree可以通过自定义操作进行扩展,以便于使用Git skip-worktree选项。

5. 参考资料

https://www.codeproject.com/Articles/5363987/Git-SourceTree-Custom-Actions-for-skip-worktree-Op

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值