gpt4 book ai didi

git - 将 svn 仓库与 git 仓库 merge

转载 作者:IT王子 更新时间:2023-10-29 01:02:31 26 4
gpt4 key购买 nike

我有一项艰巨的任务,要在两个团队之间 merge 一个包含大量文件的站点。一个团队一直在使用 git,另一个团队使用 svn。我可以就最好的方法获得一些帮助吗?我在想的是我将创建一个新的裸仓库

git clone --bare ~/dir gitversion.git

然后从那里创建一个分支

git checkout -b import-svn

然后在那个分支上我将从 svn pull

svn checkout svn://svnversion/trunk

现在在这个分支上我会 rebase ?

git rebase origin/master

然后切换回master分支

git merge import-svn

我尝试过类似的方法,但似乎无处可去。从来没有遇到任何 merge 冲突或任何没有意义的事情。有人可以告诉我一个体面的工作流程来完成这个吗?

最佳答案

我遇到过类似的事情来处理基于 SVN 的开发的多个版本。这是我如何处理它的草图:

# checkout the SVN source
$ svn checkout svn://svnversion/trunk
$ cd /into/svn/checkout

$ git init
$ echo ".svn/" > .gitignore
$ git add .gitignore; git commit -m 'Initial .gitignore'

# Now you have a master branch; create your import-svn branch
$ git checkout -b import-svn

# Add *everything* from the SVN checkout
$ git add -A
$ git commit -m 'Initial SVN'

# Now get the GIT developed stuff
$ git checkout -b import-git master
$ git remote add original-git /path/to/git-developed-repository
$ git pull original-git master # or whatever branch your git developers used.

# Now you've got two branches 'import-svn' and 'import-git'; DIFF and MERGE as you please

# You don't need the remote anymore.
$ git remote rm original-git

我认为这是对的。

现在你可以考虑 merge 了。如果您将“import-git”视为首选基线,则类似以下内容将起作用。

$ git checkout -b git-merge-svn import-git
$ git diff --name-status import-svn
$ git merge import-svn

你也可以尝试像下面这样的 rebase ,然后决定你更喜欢哪个:

$ git checkout -b git-rebase-svn import-git
$ git rebase import-svn

并比较 merge 和 rebase(应该是相同的,但你永远不知道......)

$ git diff git-rebase-svn..git-merge-svn

关于git - 将 svn 仓库与 git 仓库 merge ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10307142/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com