git - 从 Git 代码搜索中排除文件夹/创建存档分支
问题描述
TL;DR 版本
当我在 GitHub 上搜索时,某个文件夹中的文件使我的搜索结果变得混乱。我只需要这些文件用于归档目的,所以虽然我不想删除它们,但我想我可以定期将它们移动到一个单独的分支以清理 master 中的这个文件夹。
问题是如何以一种简单、可重复且不会过多污染我的历史的方式做到这一点。
语境
我(我们)的情况,我们有一个 git 存储库,它保存了我们数据模型的当前状态。所以它有一个名为 的文件TAB_ORDER.sql
,其中包含create table
创建表的语句。这些文件基本上是使用 RedGate Schema 比较生成的。
此外,存储库包含帮助我们部署更改的迁移脚本。拉取请求预计将包含对目标文件的更改,以及使其在实时数据库上发生的迁移。因此,要向该表添加一列,在单个 PR 中,我将添加一个带有alter table TAB_ORDER
用于添加列的语句的迁移文件,并且我将修改 TAB_ORDER.sql 以便其中的 create 语句代表表的新状态,包括新列。
到目前为止,一切都很好。
问题
问题是,我喜欢使用 GitHub 来搜索某些数据库对象的用途,因为它速度很快,而且它允许我搜索我们所有的存储库。但是我的搜索被所有迁移脚本污染了。理想情况下,我想从搜索中排除那些,但 GitHub 不支持,而且看起来不会很快。
所以我基本上有两个选择,除了坚持它:
- 完全删除迁移脚本。
- 将迁移保存在单独的分支中,但不在 master 中。
我更喜欢后者,所以我实际上可以保留我的迁移脚本,如果我愿意,可以搜索它们。当然,已删除的文件会保留在历史记录中,但要找到这些文件并不容易,因此保留它们不被删除是首选。
我的解决方案(我需要帮助)
如何轻松地将这些迁移脚本移动到单独的存档分支。鉴于我希望开发人员通过迁移和修改创建单个 PR,归档将是一个我可以定期执行的单独过程,但我真的不知道将文件从主文件“移动”到一个分支,基本上。
当然,也欢迎替代解决方案。
解决方案
The easiest I can think of is:
Create an archive branch
git checkout -b archive
Afterwards copy those files to your new archive branch via:
git show <branch_name>:path/to/file >path/to/local/file
Now checkout your master branch again and remove your unwanted files in the master branch.
rm file
Afterwards update your master repository again
git add *
git commit -m "removed file"
git push origin master
推荐阅读
- asp.net-mvc - 在 MVC 的 Telerik 网格中创建工具栏功能不适用于多选
- php - 是否有用于同步更新项目的 laravel 功能或方法
- c# - 如何在工作流设计器而不是 vb 中编写 c# 表达式
- laravel-5 - 如果我在 laravel 中将其保存为 ID,如何查看城市名称?
- c - 如何修复“变量先前声明的'静态'重新声明'外部'错误”?
- javascript - 如何禁用 slick 插件中的下一个按钮?
- javascript - 有没有办法让 jquery 的 ajaxError 在第一次 ajax 请求失败后停止运行?
- java - java流:直接减少
- memory - 如何为特定的 Web 应用程序设置 JVM 内存
- r - R ggplot时间序列没有网格排列