1. ホーム
  2. git

[解決済み] git svnを使ったリモートブランチのチェックアウト

2022-04-14 14:29:09

質問

git svn を使って svn リポジトリをチェックアウトしました。今、私はブランチの一つをチェックアウトし、それを追跡する必要があります。それを行うための最良の方法はどれですか?

解決方法は?

Subversionの標準的なレイアウト

Subversion のトランク、タグ、ブランチを含む git clone を作成します。

git svn clone http://svn.example.com/project -T trunk -b branches -t tags

--stdlayout オプションは、Subversion リポジトリが典型的な構造を使用している場合に有効なショートカットです。

git svn clone http://svn.example.com/project --stdlayout

git リポジトリが、subversion リポジトリが行うすべてのことを無視するようにします。

git svn show-ignore >> .git/info/exclude

これで、git 側で Subversion のすべてのブランチを見ることができるようになりました。

git branch -r

Subversion のブランチの名前が waldo . git側では、次のように実行します。

git checkout -b waldo-svn remotes/waldo

接尾辞の -svn は、次のような警告を避けるためです。

警告: 参照名 'waldo' はあいまいです。

gitブランチを更新する場合 waldo-svn を実行します。

git checkout waldo-svn
git svn rebase

トランクのみのチェックアウトから開始する

Subversion のブランチを trunk-only のクローンに追加するには、git リポジトリの .git/config を含むようにします。

[svn-remote "svn-mybranch"]を使用します。
        url = http://svn.example.com/project/branches/mybranch
        fetch = :refs/remotes/mybranch

を実行する習慣を身につける必要があります。

git svn fetch --fetch-all

をすべて更新するために git svn は別々のリモートだと考えています。この時点で、上記のようにブランチを作成し、追跡することができます。たとえば、mybranch に対応する git ブランチを作成するには、次のコマンドを実行します。

git checkout -b mybranch-svn remotes/mybranch

を作成する予定のブランチについて git svn dcommit その歴史は直線的であり続けなければなりません。


その他の情報

また、以下の記事もご覧ください。 関連する質問に対する回答 .