这可能是一个模糊的问题,但我目前无法找到一个好的解决方案。
我在公司服务器上运行一个 BookStack 应用程序。为了简化和保证安全,我有一个自定义.gitignore
文件,它忽略了除我们的自定义扩展和.env
配置之外的所有内容。
这个想法是,开发人员可以将生产存储库作为远程源添加到带有 BookStack 的目录中,并与模拟数据库一起进行安全地测试。
现在,只要我不必从 BookStack 存储库获取数据,这就可以了。如果我现在将 BookStack 添加为生产服务器上的远程源,它将与.gitignore
更新冲突。
除了每次更新时解决这个冲突之外,您对如何解决这个问题还有什么建议吗?
这只是一个想法和一个关于你可以用它做什么的小型一般指南
worktree
。如上所述,有几种可能性。
您还可以使用单独的分支进行定制或使用自动自定义脚本等。
Git Worktree 用于清洁分离
使用 Git Worktree,你可以为同一个存储库创建两个单独的工作目录:
这可以避免冲突并允许您并行管理两个版本。
步骤:
将你的存储库克隆到服务器
将 BookStack 存储库添加为上游远程
为上游分支创建一个新的工作目录(Worktree)
在主目录中的单独分支上工作
使用以下方法更新上游工作树
git pull
如果需要,将更改合并到你的自定义分支中
用于
.git/info/exclude
忽略类似.env
或自定义扩展名的文件上游更改和您自己的定制是分开的,并且可以独立于您的代码进行更新。
您可以并行使用两个版本,而不必不断切换分支。
工作树
git-worktree - 管理多个工作树
我应该用 git-worktree 来做什么?
Git 工作树
.git/info/排除
不创建 .gitignore 文件即可排除本地文件
gitignore - 指定忽略故意未跟踪的文件
什么时候使用 .git/info/exclude 而不是 .gitignore 来排除文件?