2

最近、プロジェクトをSubversionからGitHubに移行しましたが、現在機能しているローカルディレクトリはまだSVNローカルリポジトリです。複雑な理由により、新しいgit cloneローカルリポジトリを作成するのは良くないので、GitHubからgitリポジトリをチェックアウトする方法はありますか?

今、それは私にエラーを与えています:

fatal: Not a git repository (or any parent up to mount parent )
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set)

明らかに、私はgitローカルリポジトリを使用していないので。

4

3 に答える 3

4
  1. git initSubversionの作業ディレクトリにあると、gitリポジトリになります。
  2. git remote add origin <url><url>はGitHubからのHTTPSまたはSSHパスであり、ローカルリポジトリをGitHubに接続します。
  3. git fetch originローカルのGitリポジトリをGitHubからのすべての履歴で更新します
  4. git reset origin/masterファイルを変更せずに、ローカルマスターブランチを元のマスターから最新のマスターにポイントします。

この時点git statusで、ローカルの作業ディレクトリとGitHubの内容の違いが表示されます。

于 2013-01-14T22:38:36.120 に答える
3

コアの問題は、SubversionとGitリポジトリの同期を維持しようとしていることであるように思われます。そのため、GitはSubversionリポジトリへの追加ビューにすぎません。この場合、SubGitが解決策になる可能性があります。SubGitリポジトリのGitミラーを提供するため、追加のGitリポジトリを使用しながら、マシン上のSubversionに固執することができます。

于 2013-01-16T14:56:46.650 に答える
0

gitリポジトリの「SVNチェックアウト」を作成することはできません。

gitでは、リポジトリのクローン作成にはそのすべての履歴が含まれます。gitツールは、これに依存して機能を実行します。SVNでは、すべての履歴はサーバー上にあり、ローカル側は単なる作業コピーです。

あなたはする必要がありgit cloneます。SVNがどのように機能するかに最も近いノックオフは、-depth = 1でクローンを作成することですが、結果として得られるチェックアウトはかなりひどく機能しなくなります。

求めていることとは逆のことをしたい場合、つまり、アップストリームのSVNリポジトリでローカルのgitクライアントを使用したい場合、答えはですgit-svn

再ダウンロードされる量を最小限に抑えたい場合(「複雑な理由」とだけ言ったので、動機については説明できません)、ローカルファイルを保持するだけでは十分ではありません。前述したように、gitはファイルの最新バージョンだけでなく、過去のすべてのリビジョンも保存します。その過去のバージョン情報は、何をするにしてもダウンロードする必要があります。

于 2013-01-14T22:38:18.047 に答える