私は、誰もがSVN
を中央サーバーとして使用し、誰もがそのサーバーで行った変更をプッシュするプロジェクトに取り組んでいます。ローカルでGit
を使用したいのですが、git svn
は初めてです。 git svn clone
を使用してリポジトリのgit svn clone -r HEAD https://svn.repo/app/branch
を実行しました。gitを使用して更新を行います。
「git pull like」コマンドが必要ですが、SVNサーバーリポジトリの特定のリビジョンからプルする必要があります。また、SVNサーバーリポジトリの特定のリビジョンからフェッチする「fetch like」コマンドはありますか?
クローンプロジェクトに.svn
フォルダがなく、git remote
で何も返されません。ただし、git config -l
を実行してSVNサーバーのURLを取得したので、どういうわけか私はSVNサーバーとリンクしています。フェッチまたはプルする方法はわかりません。
ありがとう!
Git経由でSubversionリポジトリを操作する最良の方法:
git svn init -s https://svn.repo/app/ myrepo
https://svn.repo/app/ の下で、リポジトリに標準の/trunk
、branches
およびtags
サブディレクトリが含まれていると仮定しますgit svn fetch
を実行します(Windowsではかなり時間がかかり、場合によっては中止されることがあります)。git checkout -b trunk remotes/trunk
でチェックアウトその後、すべてのSubversionコミットとブランチを含むGitリポジトリを参照、ハッキング、コミットするだけです。
git svn rebase
を使用しますgit svn dcommit
を使用します特定のSubversionリビジョンにジャンプするには、git log
を介して履歴を参照し、対応するSubversionコミットをミラーリングするコミットを検索するだけです。コミットメッセージのgit-svn-id:
行でSubversionのリビジョンを簡単に見つけることができます。 git checkout <commithash>
を使用して、そのバージョンを明示的にチェックアウトします。
良いスタート:
新しいsvn commitをローカルリポジトリにフェッチするには:git svn rebase
ローカルコミットをSVNにプッシュするには:git svn dcommit
おそらくgit stash
およびgit stash pop
、作業コピーにコミットされていない変更がある場合に上記の2つのコマンドを使用する前。