我正在开发一个当前在 svn 中跟踪的网站项目,但一旦其他人有时间设置新服务器和其他东西,它将转移到 git。这是一个很长的故事,但与此同时,我已经从我拥有的一些代码中创建了自己的 git 存储库,并且做了很多工作。我没有使用 git svn clone 因为我在海外,而且我的互联网连接很奇怪,需要 HTTP 代理,而且它似乎没有让 git svn 通过。无论如何,我一直在自己的 git 存储库中进行开发,但最终一旦项目真正正确导入,我将需要将我的工作重新定位到 git-svn 克隆的东西上。会git rebase
为此正常工作吗?
一个复杂的问题是我实际上是在虚拟机中工作,对于许多提交,我没有意识到我没有设置 user.name 和 user.email 配置条目,所以提交来自 vm 的本地用户,这很好奇怪的。将我所有的更改收集到差异文件中,然后在创建新分支后将它们应用到新分支的顶部会更好吗?
另一个复杂情况是,之前使用 SVN 有点半心半意,所以在生产服务器上实际上存在我没有的未提交更改。实际上,我首先有一个旧版本的代码,它甚至不是 SVN 头,所以我错过了一些东西。最好的方法是什么?
最后一个问题是,如果我确实通过导入 SVN 存储库git svn
(我刚刚检查过,它现在似乎可以工作)但我没有添加作者文件,我以后是否能够将我的更改重新设置到正确导入的分支上与作者文件?
哦,一个新的并发症。我自己使用 导入了 SVN 存储库git svn
,这是一个艰苦的过程,在这个缓慢的连接上花了两天的大部分时间。然而,在最终完成克隆之后,我意识到在 SVN 存储库中代码都在一个子目录中,但在我的 git 存储库中,存储库的根目录也是目录的根目录。如果这有点混乱,它基本上是这样的
SVN:
\dir\codez
混帐:
\codez
如何合并这两个存储库?我希望我仍然可以使用 rebase,但这似乎是一个非常奇怪的情况。这听起来类似于子模块,但我认为这不是我所需要的。