将现有的Git存储库推送到svn中的文件夹

哈基姆·豪斯顿(Hakim Hauston)

我有一个一直在努力的现有git存储库。但是最近,我需要将提交推送到svn中(无需包括所有合并,但至少可以使用一个线性master分支来完成)

我的git / svn不太好,我只是使用SourceTree和CornerStone或Tortoise以及不错的UI进行提交,分支和标记的普通用户。我之前使用过git-svn来将svn存储库迁移到git中,但是反之亦然。

是否有可能?我已经浏览了几本教程,但都没有用。我对诸如等等术语也不太满意rebasereflog如果有一些很好的指南来完成简单的事情而无需学习git / svn的更复杂部分,将不胜感激。(很简单,因为我猜想肯定有人曾经遇到过同样的问题,并且以前做过)

提前致谢!

曾尼希玛罗

好吧,这实际上很简单..首先,您需要通过git克隆svn,然后将git repo添加为另一个远程目录。这将为您提供两个单独的HEAD,这就是为什么您需要将git-rebasegit提交到git-svn头中的原因。尽管svn仅具有线性提交,但可能会有冲突。这就是为什么在最终git svn dcommit将所有内容推送到svn之前需要各种git命令修复所有这些问题的原因。

这是摘要:

1.创建一个git svn克隆跟踪svn

git svn clone svn://DEST/repo/projectname/trunk dest

现在我们有了一个git repo来跟踪导入操作的目标svn登陆点。

2:跟踪我们要导入的git repo

cd dest
git remote add -f source /path/to/git/source/repo

现在,如果检查git历史记录,您将看到来自原始git repo的一系列提交,与此断开的是主HEAD加上指向我们克隆的原始(单个)svn提交的git-svn HEAD。

3:将原始的git repo重新设置为git-svn

这就是秘密魔法所在。我好像有很多路要走。这是我发现唯一能工作的人。当然,我尝试了许多失败的方法。一旦找到有效的方法,我便停止尝试。因此,如果有更好的方法,我很想听听,但这似乎效果很好。

git rebase --onto remotes/git-svn --root source/master

在这一点上,我意识到我的git历史不是严格线性的。我曾经在几台机器上工作过,所以后备箱的历史有些复杂了。

这意味着我原本希望是一个简单的操作(这就是戴上SVN帽子所期望的),并且在此过程中需要进行一些基础修复:

(
gvim foo # fix merge conflict
git add foo
git rebase --continue
)
# ... rinse and repeat

这些是必需的,因为源回购中的分支是来自不同机器上的工作,这些分支被合并在一起以形成“源”开发主干线,并且在没有一些调整的情况下并没有变成一个基础。

总的来说,冲突很小,并不难解决。

4:推高SVN

现在我们已经将所有内容都安排在git-svn之上,这是一个简单的例子:

git svn dcommit

将更改推送到svn中。

资料来源:http//goodliffe.blogspot.sg/2011/08/pushing-git-repository-into-existing.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将现有的Git存储库推送到SVN

将新文件推送到现有的git存储库

如何将项目从android studio推送到现有存储库中的特定github文件夹中?

如何将新代码推送到 github 中现有的 git 存储库

如何将本地文件夹与现有的 git 存储库映射

无法将现有的git存储库推送到新的TFS

使用Java将文件推送到现有的GitLab存储库?

如何将项目的新文件推送到现有的Bitbucket存储库

将现有文件夹推送到GitLab

GitHub 帮助 - 将文件夹推送到存储库

如何通过SSH将Git存储库推送到文件夹?

Git-将子文件夹推送到其他存储库

无法将文件夹推送到Bitbucket中的远程存储库

如何将现有的非空目录转换为Git工作目录并将文件推送到远程存储库

如何将文件夹中的所有文件推送到所有git分支

替换svn存储库中的现有嵌套文件夹

将新文件推送到现有存储库中的特定分支

如何将本地文件夹合并到现有的git仓库中?

如何将新文件/文件夹添加到现有的Github存储库?

如何将现有的 Visual Studio 项目推送到不同的 GitHub 存储库

将当前代码推送到现有的GitHub存储库

如何将现有的android项目推送到组织的存储库?

推送到非裸存储库后,.git文件夹中的文件具有错误权限(receive.denyCurrentBranch updateInstead)

将GIT存储库子文件夹克隆到具有相同文件夹结构的现有Repo中

将GIT存储库子文件夹克隆到具有相同文件夹结构的现有Repo中

将现有存储库推送到新的Github存储库时忽略某些文件

Git推送到远程存储库上的特定文件夹

在vagrant中创建的哪个文件夹或文件不应推送到GitHub上的存储库中

无法推送现有的本地git存储库