既存の SVNリポジトリにプッシュすることで、私の仕事を提出する学校プロジェクトを依頼されました。既存のリポジトリで、すでにいくつかのファイルがあります。これらのファイルや前回のコミットは必要ありません。既存のgitリポジトリを既存のSVNリポジトリにプッシュ
私はgitリポジトリを使用して自分の課題に取り組んでいました。私は歴史を失うことなく、私の仕事をSVNリポジトリにプッシュしたいと思います。これどうやってするの?
既存の SVNリポジトリにプッシュすることで、私の仕事を提出する学校プロジェクトを依頼されました。既存のリポジトリで、すでにいくつかのファイルがあります。これらのファイルや前回のコミットは必要ありません。既存のgitリポジトリを既存のSVNリポジトリにプッシュ
私はgitリポジトリを使用して自分の課題に取り組んでいました。私は歴史を失うことなく、私の仕事をSVNリポジトリにプッシュしたいと思います。これどうやってするの?
私はミックスを行うだろう
ここでの詳細な説明があります。つまり、最初にgit svnでsvnをクローンします。そして、この新しいリポジトリでは、あなたの現在のgitリポジトリからの作業をmergeにします。
$ git svn clone http://svn.example.com/project/trunk
$ cd trunk
$ git checkout -b mywork
$ git pull /path/to/current/work/repository/.git master
は今、あなたは転覆からcloneでmywork
ブランチでの作業を持っています。マージしてプッシュする時間。
$ git checkout master
$ git merge mywork
$ git svn dcommit
お楽しみください!
これは完全に機能しました! –
これを試しましたが、私のgitの履歴はすべて1つのsvn commitとしてプッシュされ、コミット履歴ログ – palaniraja
gitのすべての変更がブランチmaster
ブランチに適用またはマージされていることを前提条件として確認できます。
git-svn rebase
を実行してsvnからの更新をマージし、最後にgit-svn dcommit
を実行して変更をコミットできます。 CF - - http://www.viget.com/extend/effectively-using-git-with-subversion/
歴史をもう少し説明できますか? SVNからクローンを作成するために 'git svn clone'を使用しましたか? – fge
まだありません。それがこの問題に近づく正しい方法であるかどうかはわかりません。これまで私はそれを修正するために何もしなかった。私が見ているすべてのガイドは、裸の/新しいSVNリポジトリを持っていると仮定しています。 –
これは一つの方法であり、あなたは歴史を失うことはないと確信しています。しかし、もっと知る必要があります:あなたの最初のgitインポートは、ある時点でSVNリポジトリのコピーですか?あなたは地元のgit repoで働いていると言いましたが、どのようにしてファイルを操作するのですか? – fge