gpt4 book ai didi

Git:防止暂存某些文件,自动暂存所有文件

转载 作者:太空狗 更新时间:2023-10-29 14:05:06 25 4
gpt4 key购买 nike

我想取消暂存当前工作副本中的所有内容,但自动暂存我将来编辑的所有和大块文件。

例如,在我从事的项目中,我使用的 CocoaPods 版本与大多数其他人不同。我想升级配置文件的配置以与我的 CocoaPods 兼容而不破坏他们的配置。最简单的方法是不在 pull 请求中包含新配置,但这意味着我无法构建。存储和 pop 将不起作用,因为如果我在编辑配置后存储然后应用我的更改, pop 将修复配置但撤消我的更改。

我应该如何解决这个问题?

最佳答案

一种方法是以只有您在本地可见的方式修改该配置文件。
但以一种对该存储库的其他用户不可见的方式。

如果这些修改定义明确(而不是 your.config.file 中的所有地方),那么您可以考虑 content filter driver为了在 checkout 时为该配置文件生成正确的内容:

(在本地存储库的根文件夹中编辑或创建一个 .gitattributes 文件,并在其中添加上面的行。您可以添加、提交和推送该文件:它不会对其他用户的任何影响)。

smudge
(图片来自“Customizing Git - Git Attributes”,来自“Pro Git book”)

cd /path/to/your/local/cloned/repo
git config filter.filterconfig.smudge 'update_config'
git config filter.filterconfig.clean 'restore_config'

update_configrestore_config 脚本可以在本地 $PATH 的任何位置(它们在 bash 中,即使您在 Windows 上,因为它们将由 mingw git bash 执行。

update_config 脚本将:

  • 制作配置文件的初始副本,
  • 将其修改注入(inject)配置文件。

这样,触发工作树更新的 git pull 将自动重新生成配置文件内容,并进行所需的本地修改。

restore_config 脚本会在 git 调用时恢复文件的已保存副本(它会被 git statusgit 触发例如差异):

cat saved_copy

这样,就 git 而言,配置文件似乎永远不会改变。

关于Git:防止暂存某些文件,自动暂存所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36500819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com