0

次のように設定されたsvnにプロジェクトがあります。

project
 branches/
 tags/
 trunk/

私がするときはいつでも

git svn clone -s -r ##:HEAD path/to/svn

私が取得するのは、一連のファイルとフォルダーから来ていると信じているtrunkだけです。

git branch

私が見るのはmaster私が見るべきときだけでmasterあり、cleancleanは下にあるbranches/

どうしたの?

私が行った場合:

git svn clone -r ##:HEAD path/to/svn

次に、次のレイアウトを取得します。

project
 branches/
 tags/
 trunk/

しかし、gitは の下のブランチを認識しませんbranches。またtrunk、またbranches....

何か案は?

4

2 に答える 2

3

ブランチが作成されたと思いますが、リモート ブランチであるため表示されません。試してみてくださいgit branch -va。これらのリモート ブランチを操作するには、たとえば、ローカル ブランチを作成します。

$ git checkout -b working_from_branch -t clean remotes/branches/clean

于 2012-08-09T17:35:41.360 に答える
2

次のコマンドを試してください。

git branch -r

...これにより、このリポジトリが認識しているすべてのリモート ブランチが表示されます。branch/ ディレクトリがフラット (ネストされたブランチやブランチ階層がない) であると仮定すると、 git svn clone -s はそれらを自動的に認識するはずです。

これらが git ブランチへのデフォルトの応答に表示されない理由は、git のリモート ブランチで直接作業するのが一般的に悪い習慣であるためです。リモート リポジトリに変更を送信すると、リモート ブランチのすべてが送信されます。ローカル追跡ブランチをチェックアウトすることで、コミットを削除するオプションを保持できます (別のローカル追跡ブランチを作成し、そこに送信したい変更をコピーすることにより)。追跡ブランチを作成するには、次を使用します。

git checkout -b master-mybranch -t mybranch

mybranch は追跡したいブランチです。私は独自の慣習として master-* を使用していますが、トラッキング ブランチの名前を思い出せる限り、好きな名前を付けることができます。幸運を!

于 2012-08-09T19:01:39.067 に答える