我在创建数据库包时有一个要求。我们的数据库更改是以git为单位的。我们用版本标记git-reo。例如。branch=开发file1-没有标记,file2-没有标记,file3标记了v1.2,file4标记v1.1,
我只想克隆尚未标记的文件。即file1和file2
file3和file4不应克隆到我的本地文件夹。请帮忙我需要创建不在生产中的数据库包。生产中已经更新了upv1.2文件。我无法再次发送。所以只想得到v1.2 后更改的文件
感谢您的回复。
- 我首先使用getrevision=";git log-3--漂亮=格式:"%h〃;tag_v.1…头
- 然后在getreview上循环
- 然后获取所有尚未标记的文件名files=$(git log tag_v.1.HEAD--漂亮="格式:"--仅限名称$rev(
- 然后应用循环验证所有现有文件
- 删除所有不在$files中的文件更新或修改天气并不重要。如果它存在于tagv1之后,则包括文件
这将解决我的问题
Git不是关于文件的。Git是关于提交的。每次提交都是每个文件的完整存档。
git clone
命令创建一个新的空存储库,然后运行git fetch
以使用提交来填充它。您需要获得有问题的提交,然后对这些提交进行自己的处理。也就是说,您将获得其哈希ID由标记给定的提交,并查看该提交中的所有文件。然后,您将查看所有稍后提交的文件,并查看哪些文件相同,哪些文件不同。
你需要定义你所说的";由于某些修订而添加/修改";,因为可以用六个文件进行commit#17:f1
f2
f3
f4
f5
和f6
,然后通过删除f3
只用五个文件进行ommit#18,然后再放回f3
,用六个文件进行commit#19,与#17中出现的方式保持不变。然后提交#20可能会更改f4
,但提交#21会将其更改回来。文件f3
和f4
是添加或修改的,还是相同?
一旦你定义了你的意思,你就会知道——或者至少能够学习——如何找出哪些文件符合你的标准。