代码之家  ›  专栏  ›  技术社区  ›  1800 INFORMATION

如何使用git svn?[闭门]

  •  14
  • 1800 INFORMATION  · 技术社区  · 18 年前

    4 回复  |  直到 18 年前
        1
  •  4
  •   andy SKK    18 年前

    --prefix=svn/

    另外,不要忽视 --trunk , --tags --branches 做某事时的争论 clone 或 init .

    抓取是比较耗时的步骤之一,所以设置一个cron作业来完成 git svn fetch 在后台。这是安全的,因为获取不会影响任何工作分支。

    (有关 :无论何时执行,都会首先执行此命令 git svn rebase git-svn-rebase 打电话通常会更快。这个 fetch 命令下载SVN提交并将它们粘贴到git SVN管理的特殊分支中。通过执行以下操作可以查看这些分支 git branch -r ,如果执行了上述步骤,则它们以“svn/”开头)

    git reflog . 我有过几次 git svn dcommit 我死了(通常是因为我试图登记一些大的东西),我的承诺似乎丢失了。在任何情况下,都可以在reflog中轻松找到提交。

        2
  •  4
  •   1800 INFORMATION    17 年前

    以下是我最近学到的一些知识:

    1. 总是这样 git svn rebase 做之前 git svn dcommit
    2. 当你在做 dcommit ,从临时暂存分支执行此操作-如果您(或git)陷入困境,只需删除分支并重新开始即可轻松恢复

    svn dcommit 在一次重大犯罪的中途死亡而你似乎失去了所有的历史, do this :

    如何恢复:

    首先,打开.git/logs/HEAD

    查找提交的哈希值,该哈希值是 记住提交消息并可以 想清楚了,但它应该很漂亮 明显的

    回到你现在的f-ed工作目录:

    git重置—硬重置<来自日志的哈希>

    这将使您的工作目录返回到 在你做git-svn之前它在哪里 D委员会。然后:

    git svn重新设置git svn DCOMIT的基础

        3
  •  1
  •   Greg Hewgill    18 年前

    如果您的SVN存储库中有一个post-commit钩子可以拒绝提交,那么 git svn dcommit

    事实上,我认为上述问题是由于我的奶牛工人没有跑步造成的 git rebase -i 在尝试修复被拒绝的提交时正确。但是,多亏了reflog,我们才能够恢复一切!

        4
  •  0
  •   Community Mohan Dere    9 年前

    我在博客上写了一些关于如何与Subversion和Git并行使用的内容,我还发布了一些基本的屏幕广播。收集了这里的一切: http://www.tfnico.com/presentations/git-and-subversion

    我将尝试一个摘要:

    • 首先从一个小的Git项目开始学习。
    • 坚持使用命令行,直到掌握它为止。GUI工具可能会让您感到困惑。
    • 如果可能,进行一次性迁移,将SVN留在后面,一次一个项目,从小项目开始。
    • 如果您必须同时使用Git和SVN,请注意您必须放弃从Git获得的许多优势,例如分支,但您可以获得“本地”好处(隐藏、索引、速度)。
    • 如果您是一个Git用户,只需自己进行Git svn重定基址和数据提交即可。
    • More info here .