Svn 如果GIT更年轻,如何向GIT添加颠覆历史?

Svn 如果GIT更年轻,如何向GIT添加颠覆历史?,svn,git,version-control,Svn,Git,Version Control,我正在做一个项目,我突然想到,在切换到git之前,我已经做了一些我需要做的更改。我想使用GIT特性来解决这个问题 我的问题是,如何获取.svn历史记录并将其与.git合并,以便将.svn提交放置在宿主git repo中正确的历史上下文中 有道理吗 我自己还没有尝试过,但是使用以下命令“跟踪和贡献Subversion管理项目的主干” 只要您没有在计划从中进行数据提交的分支上运行git merge或git pull,这项功能就可以正常工作,如下所述。不过,为了安全起见,你真的应该为自己通读本手册中的

我正在做一个项目,我突然想到,在切换到git之前,我已经做了一些我需要做的更改。我想使用GIT特性来解决这个问题

我的问题是,如何获取.svn历史记录并将其与.git合并,以便将.svn提交放置在宿主git repo中正确的历史上下文中


有道理吗

我自己还没有尝试过,但是使用以下命令“跟踪和贡献Subversion管理项目的主干”

只要您没有在计划从中进行数据提交的分支上运行
git merge
git pull
,这项功能就可以正常工作,如下所述。不过,为了安全起见,你真的应该为自己通读本手册中的所有注意事项

为了简单起见 与Subversion进行互操作,它是 建议所有git svn用户 直接从中克隆、获取和提交数据 SVN服务器,并避免所有git 克隆/拉/合并/推操作 在git存储库和分支之间。 推荐的交换方法 git分支和用户之间的代码是 git格式补丁和git am,或者只是 “向SVN存储库提交数据”

无法运行git merge或git pull 推荐给您计划加入的分支机构 来自Subversion用户的dcommit 无法看到您进行的任何合并。 此外,如果您合并或从 一个git分支,它是 SVN分支机构,dcommit可向 错误的分支


我自己也没有尝试过,但是使用以下命令“跟踪和贡献Subversion管理项目的主干”

只要您没有在计划从中进行数据提交的分支上运行
git merge
git pull
,这项功能就可以正常工作,如下所述。不过,为了安全起见,你真的应该为自己通读本手册中的所有注意事项

为了简单起见 与Subversion进行互操作,它是 建议所有git svn用户 直接从中克隆、获取和提交数据 SVN服务器,并避免所有git 克隆/拉/合并/推操作 在git存储库和分支之间。 推荐的交换方法 git分支和用户之间的代码是 git格式补丁和git am,或者只是 “向SVN存储库提交数据”

无法运行git merge或git pull 推荐给您计划加入的分支机构 来自Subversion用户的dcommit 无法看到您进行的任何合并。 此外,如果您合并或从 一个git分支,它是 SVN分支机构,dcommit可向 错误的分支


我有一个计划来实施你的建议,但我太忙了,现在不敢冒险把这一切都抛在脑后。别担心,如果它起作用,你会成功的!!:我有一个计划来实施你的建议,但我太忙了,现在不敢冒险把这一切都抛在脑后。别担心,如果它起作用,你会成功的!!:D
# Clone a repo (like git clone):
        git svn clone http://svn.example.com/project/trunk
# Enter the newly cloned directory:
        cd trunk
# You should be on master branch, double-check with 'git branch'
        git branch
# Do some work and commit locally to git:
        git commit ...
# Something is committed to SVN, rebase your local changes against the
# latest changes in SVN:
        git svn rebase
# Now commit your changes (that were committed previously using git) to SVN,
# as well as automatically updating your working HEAD:
        git svn dcommit
# Append svn:ignore settings to the default git exclude file:
        git svn show-ignore >> .git/info/exclude