8

SubGitを使用してGitとSVNリポジトリを同期しています。リモートGitリポジトリのクローンを作成するとき、そのリポジトリのすべての履歴を保持したいと思います。現在実行している手順では、マスターブランチの履歴のみをコピーできます。

svnadmin create svn_repos
subgit-1.0.0-EAP_1381/bin/subgit configure svn_repos
subgit-1.0.0-EAP_1381/bin/subgit install svn_repos
git clone svn_repos gitRepo

cd gitRepo/
git remote add -f newRemote git://127.0.0.1/gitRepo
...
From git://127.0.0.1/gitRepo
 * [new branch]      FirstProductionTag -> newRemote/FirstProductionTag
 * [new branch]      SecondProductionTag -> newRemote/SecondProductionTag
 * [new branch]      ThirdProductionTag -> newRemote/ThirdProductionTag
 * [new branch]      bugfix     -> newRemote/bugfix
 * [new branch]      bugfix2    -> newRemote/bugfix2
 * [new branch]      master     -> newRemote/master

git merge -s ours --no-commit newRemote/master
git read-tree --prefix=foo/bar/ -u newRemote/master 
git commit -m "Merged new Remote into subdirectory /foo/bar"
git push origin master

bugfixブランチとbugfix2ブランチからの変更を同時にマージするにはどうすればよいですか?ありがとう!

4

2 に答える 2

6

リモートGitリポジトリからSubversionリポジトリを取得し、両方のリポジトリの同期を維持することが目標である場合は、次のことを検討してください。

$ svnadmin create svn_repos
$ git clone --mirror git://127.0.0.1/gitRepo svn_repos/.git
$ subgit-1.0.0-EAP_1381/bin/subgit install svn_repos
于 2012-06-18T14:24:25.180 に答える
0

私はログインして、vadishevの答えが機能し、完全な履歴を持つgitリポジトリをsvnにインポートする最も簡単なソリューションであると言いました。

また、マスターブランチのみをマップする必要がある場合(意図的にgitリポジトリ内の他のブランチを省略している場合)、最初に次のような単一のブランチフラグを使用してgitリポジトリのクローンを作成する必要があります。

git clone git_url --branch git_branch --single-branch target_folder

vadishevありがとうございます。

于 2014-07-18T02:58:15.733 に答える