私はsvn repoをgitに移行していました。私はクリーンな一時ディレクトリを作成し、git svn initを使用してそこに物を入れ、リモートを追加してプッシュしました。ここで、他の実際のソースディレクトリ(svnからデータをコミットする前に空のリポジトリからクローンを作成しました)でフェッチを実行しました。そして、私はチェックアウトをして、上記のメッセージを得ました。しばらくして、プルでソースを取得できると考え、それを行いました。私の質問は、そのコンテキストでそのエラーメッセージが何を意味していたのですか?特定のエラーメッセージが表示されたのはなぜですか。免責事項:私はGit初心者です
リモートの参照とコミットのみをフェッチするフェッチでは、ローカルmasterブランチがチェックアウトに渡されなかったためだと思います。空のレポにいたので、ブランチに行ったことがないので、git checkout
にはmasterブランチがありませんでした。
git checkout Origin/master
で明示的に名前を付けることにより、リモートマスターを直接チェックアウトできますが、これによりヘッドが切り離された状態になります。
プルを実行すると、プルされたandマージされ、プルによってローカルmasterが作成され、リモートマスターが追跡されます。
Svnをgitに移行しようとして同じエラーが発生しました。ここに私の修正がありました。
Gitリポジトリを初期化したことを確認します。
git init
実際にsvnからの有効な移行があったことを確認してください:
git branch --remote
#You should see this output:
#git-svn
分離したヘッドを作成します。
git checkout git-svn
デタッチされたヘッドをマスターブランチに変換します。
git checkout -b master
この時点で、gitリポジトリは正常に機能します。