今日の部門は私のために、それは非常に不快で、この新人をgitのために移行するのsvnプロジェクトを取るために任務を受けました。私は半分のgit、SVNを学び、何の接触が、方法がないので、ああ上の弾丸を噛まないように持っています。
これは、移行を開始するのsvnとgitの違いを理解するために、単純な、その後、SVNのさまざまなオンラインチュートリアルにチェックするために時間を要し、兄のおかげで私のヘルプ文書を与え、非常に感謝。
まず、我々はSVNにプロジェクトパスを想定し、SVNリンクプロジェクトを知っている必要があります://練習。//test.git:あなたが作成したGitプロジェクトを移行することを保証しながら、1を自分で作成していない、それが想定され、ここではgitリポジトリのアドレスは、httpです。
gittestと呼ばれる地元の倉庫の名前を想定し、あなたの選ばれた地元の倉庫で次のコマンドを実行します。
git svn clone svn://practice --authors-file=authors.txt --no-metadata gittest
--authorsファイル=てAuthors.txtと--no-メタデータについては、以下のリンクを参照してもよい他のシステムとのhttps://git-scm.com/book/zh/v2/Git- - -gitに移行します。
ディレクトリにGittest、その後、refs/remotes
残りの参照ローカルブランチの次の移動:
rm -Rf .git/refs/remotes
今、すべての古い枝は本当のGitのブランチであり、すべての古いタグが本当のGitのタグです。行うには最後のものは、リモートとトップにプッシュとしてあなたの新しいGitのサーバーを追加することです。以下は、追加のサーバーでリモートリポジトリの例です。
$ git remote add origin http://test.git
あなたはすべてのブランチとタグをアップロードしたいので、あなたが実行できるようになりました。
$ git push origin --all
これは、プロジェクトがGitのアップにアップロードされているため。
しかし、何らかの元のsvn矛盾し、gitの上の非標準的な開発プロセス、コード行のコードコードはgitの上のコードの行と一致していることを確認する必要がありますリリースプロセスの後に行くには、まだいくつかの問題がある、あなたが引くことができます以下のように、コードの再アップロードgitリポジトリのラインを取る:
いくつかの他の無関係のログファイルを好きではない、私はちょうど行くとPYスクリプトにしたい、とディレクトリtmpのすべてのファイル、私はそれがプロジェクトに表示したくありません。私は、次のコマンドラインパッケージのコードを使用して開始しました:
sudo find /data/test -path "/data/test/tmp" -prune -o -name "*.py" -o -name "*.go" | xargs tar -czvPf gittest.tar.gz
このコマンドの詳細は、参照することができますについてhttps://blog.csdn.net/u011517841/article/details/53204524 /データ/テスト/ tmpが存在する場合、-path -prune、カレントディレクトリ以外のすべてのファイルを表示します