我遇到了一个奇怪的问题,我无法自己回答,尽管我已经使用 git 很长时间了。
git
当单个文件被视为生产就绪时,流程需要标记单个文件。当其他文件也“准备好”时,它们也需要被“标记”。文件被首先标记可能会改变直到那一刻,但我们仍然需要能够一次检索所有“准备好的”文件。
如果可以在提交中标记单个文件,它会起作用,但事实并非如此。
你能给我任何线索,解决方法,我怎么能做到这一点:在几个提交中检索几个文件,通过单一标准链接在一起?
出于这样的目的标记文件要求文件签入的分支不会更改,例如,如果分支上的某个版本被标记,然后分支是变基,那么标记仍将指向“旧”版本而不跟随到“新”分支。因此,对于“文件尚未交付”的情况,标记可能无法正常工作。
我认为更好的做法是创建一个特殊的production_ready
分支,然后挑选您认为已准备好生产的更改到该分支上。这样,当实际“交付生产”发生时,您只需合并production_ready
分支。
按您的要求,
使用 git 进行软件开发。git add .
执行向索引添加新更改并根据需要将它们提交到您的存储库的正常git commit -m "commit message"
过程。
在一天结束的时候,你会想让鞋帮开心,并将你当前的所有工作都签入到另一个 CM 系统。问题是该系统要求您标记/标记每个文件而不是“一组”文件。您可以通过在签入后立即使用与相应 git 提交的 SHAID 哈希匹配的标签(可通过键入 访问git log
)标记旧 CM 系统中的所有产品文件来处理此问题。
这允许您对一组与特定 git 提交相对应的文件进行一对一的记录。
感谢 git 的灵活性,我们找到了答案!该解决方案有其自身的缺点,但它确实有效。
这个想法很简单。所有production-ready
更改都将在单独的分支中进行跟踪,并且文件将不会通过与开发分支合并出现在那里,而是通过从中仅检出所需的文件。
尽管我们丢失了所有的前历史,但我们将获得如何一次性检索所有文件的production-ready
简洁明了的方法。production-ready
在我们的辩护中,我可能会补充说,可以通过将提交消息添加到pre-production
签出文件的提交的分支 id 中来解决这个历史问题。并且还可以通过扭曲简单的 git 命令来执行一系列需要的命令来简化该过程。
这些命令是:
git checkout pre-production
切换到pre-production
分支。
git checkout development file/name
从development
分支签出所需的文件。
git commit -m "Moving file/name to pre-production from commit id 5364afb23"
提交并标记运动。