Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在本地使用SVN并将更改推送到远程Git服务器?_Svn_Git - Fatal编程技术网

如何在本地使用SVN并将更改推送到远程Git服务器?

如何在本地使用SVN并将更改推送到远程Git服务器?,svn,git,Svn,Git,我使用OSX来管理Subversion中的所有代码。在Git有一个很棒的GUI应用程序版本之前,我对显著改变我当前的工作流程不感兴趣 我的一个客户希望我将代码推送到一个私有的GitHub存储库。关于在本地运行Git并将其推送到远程Subversion服务器,有很多问题和文章,但我似乎找不到任何针对相反情况的建议 明确地说,我想做的是: 在本地Subversion签出中管理我的代码(中央存储库实际上位于远程服务器上,但我希望这在这里并不重要) 每当我向客户机传递信息时,我都希望运行一个命令,例如“

我使用OSX来管理Subversion中的所有代码。在Git有一个很棒的GUI应用程序版本之前,我对显著改变我当前的工作流程不感兴趣

我的一个客户希望我将代码推送到一个私有的GitHub存储库。关于在本地运行Git并将其推送到远程Subversion服务器,有很多问题和文章,但我似乎找不到任何针对相反情况的建议

明确地说,我想做的是:

  • 在本地Subversion签出中管理我的代码(中央存储库实际上位于远程服务器上,但我希望这在这里并不重要)
  • 每当我向客户机传递信息时,我都希望运行一个命令,例如“git update github with local svn changes”
  • 如果其他人提交到GitHub(罕见),我想运行一个命令,如“git update local svn with GitHub changes”

  • 有一个git-to-svn桥,称为git-svn,它允许用户在本地使用git,然后推/拉到远程svn服务器。但我不知道有哪种工具支持相反的方向。我相信我会在回答这个问题时学到一个

    有一个git-to-svn桥,称为git-svn,它允许用户在本地使用git,然后推/拉到远程svn服务器。但我不知道有哪种工具支持相反的方向。我相信我会在回答这个问题时学到一个

    我能想到的最佳答案是使用
    git svn
    制作subversion服务器的git副本,然后将由此创建的分支推送到github。在github中进行更改时,将其下拉,将其与从subversion克隆的分支合并,并将其提交到subversion中。这是将整个github端视为(主)subversion服务器的下游,您应该能够使用已经存在的所有建议来管理它


    如果github中已经有代码,那么您可能需要做一些重定基调的工作。基本思想是获取最新的源代码,将其导入subversion,使用git svn从subversion中提取,然后在github的分支上重新设置最新git svn提交的基础。然后,您将拥有git历史记录,其头部有一个新的提交,其中包含git svn元数据。不过,我还没有尝试过这个方法。

    我能想到的最好答案是使用
    git svn
    制作subversion服务器的git副本,然后将这样创建的分支推送到github。在github中进行更改时,将其下拉,将其与从subversion克隆的分支合并,并将其提交到subversion中。这是将整个github端视为(主)subversion服务器的下游,您应该能够使用已经存在的所有建议来管理它


    如果github中已经有代码,那么您可能需要做一些重定基调的工作。基本思想是获取最新的源代码,将其导入subversion,使用git svn从subversion中提取,然后在github的分支上重新设置最新git svn提交的基础。然后,您将拥有git历史记录,其头部有一个新的提交,其中包含git svn元数据。不过,我还没试过。你试过了吗。git的GUI可能已经足够好了,您可以直接使用git。

    您试过了吗。git的GUI可能已经足够好了,你可以直接使用git。

    是的,没错,所有关于git svn的讨论都很好,但它似乎掩盖了任何相反方向的讨论。是的,没错,所有关于git svn的讨论都很好,但似乎掩盖了任何相反方向的讨论。谢谢,Andrew。我可以为这个项目启动一个新的GitHub存储库,所以第二部分不应该成为问题。我认为应该使用“git svn rebase”命令用最新的Subversion更改更新本地git存储库,这是正确的吗?是的,这可能是最简单的方法。您可以使用
    git svn fetch
    自行处理任何合并或重定基址。谢谢,安德鲁。我可以为这个项目启动一个新的GitHub存储库,所以第二部分不应该成为问题。我认为应该使用“git svn rebase”命令用最新的Subversion更改更新本地git存储库,这是正确的吗?是的,这可能是最简单的方法。您可以使用
    git svn fetch
    自己处理任何合并或重定基址。谢谢,杰夫,我试过GitX,但它并不适合我。谢谢,杰夫,我试过GitX,但它并不适合我。