从不受版本控制的目录提交以覆盖当前版本

Posted

技术标签:

【中文标题】从不受版本控制的目录提交以覆盖当前版本【英文标题】:Commit from directory, not under version control, to override current revision 【发布时间】:2009-08-03 06:57:14 【问题描述】:

标题可能具有误导性,因此我尝试解释我的情况。

我有一个 Subversion 存储库和一个比头版本更旧的版本,我现在称之为版本 X。我的版本已更改 (X+1) 并撕掉了版本控制系统。此本地文件夹中没有 .svn 目录或类似目录。

我想将此 X+1 修订版作为负责人提交到我的存储库。我的问题是如何做到这一点。 这是一个分支,但没有正确完成,所以我现在必须面对这个问题。

X 和 head 之间的所有更改都不应该在新的 head 中,但 X 和 X+1 之间的所有更改都必须在 head 中。

我希望我的解释是可以理解的。

编辑: 我不知道,X 是哪个版本。我只有没有任何信息的非版本化工作副本。这是最大的问题。很抱歉没有提到这一点。

【问题讨论】:

【参考方案1】:

最快的方法可能是将存储库检出到不同的文件夹,将其恢复为版本 X,然后将“X+1”文件复制到检出的工作副本,覆盖任何现有的冲突,然后提交。

【讨论】:

你的想法不错,我应该可以用。问题是X中有文件不在X+1中。 这不是问题,只会提交更改的文件,如果您在 X+1 中有不在 X 中的文件,那是另一回事 - 您必须在提交之前添加它们. 但我不想把这些文件放在头上。另一个方面是在我的问题的编辑中:我不知道 X 是哪个版本。 嗯。如果您从已签出的 head 工作副本中删除所有文件(但保留 .svn 目录),然后粘贴到 X+1 目录的内容中,那么您可能会执行 svn diff 以确定哪些内容在您的 X+1 副本和当前头像之间更改。 这个方法不错……我试试。

以上是关于从不受版本控制的目录提交以覆盖当前版本的主要内容,如果未能解决你的问题,请参考以下文章

Git版本控制Git中merge合并分支只对当前分支产生影响,被合并的分支不受影响

Git版本控制

如何在脱机时以编程方式确定本地文件是不是受 TFS 版本控制

如何在git gui中使用标签进行版本控制

版本控制软件git相关操作

分布式版本控制工具Git