ワイプされるコンピューターからgitリポジトリのクローンを作成しています。
元のリポジトリを作成せずにリポジトリのクローンを作成することは可能ですorigin/master
か?または、クローンを作成してから、リモートブランチを削除する必要がありますか(これはで実行されgit remote rm origin
ます)?
編集:リポジトリにはブランチが1つだけあり、タグはありません。
マスターブランチのクローンを作成するために、元のリポジトリを「オリジン」リモートにする必要はありません。
新しいマシンで、新しいリポジトリを作成します。
git init foo
次に、リモートを作成せずに、古いリポジトリを新しいリポジトリにプルします。
cd foo
git pull <reference to old repository>
ただし、リポジトリを保存する最も簡単な方法は、リポジトリのディレクトリを圧縮して、ファイルを新しいマシンに移動することです。これにより、すべてのリモコン、タグなどが保持されます。
以下で説明するように、リポジトリをコピーするときは、大文字と小文字を区別するファイルシステム(Linux、Mac、NTFSなど)から大文字と小文字を区別しないファイルシステム(Fat32など)に移行するときに注意してください。
まず、--origin <name>
のオプションを使用できますgit clone
--origin <name>、- o <name>
リモート名のオリジンを使用してアップストリームリポジトリを追跡する代わりに、 <name>を使用します。
次に、を使用git remote add
して、既存のリポジトリにフェッチするリポジトリを追加できます(したがって、を使用できますgit init
)git remote add <name> <url>
。
リポジトリのミラーを作成refs/heads/*
しrefs/heads/*
、クローンを作成する場合は、リポジトリを作成しinit
、適切なrefspecを設定してから、fetch
...
または、を使用できますgit clone --mirror
。これは、OPの質問の現在のバージョンに回答する必要があります。
ただし、これでは構成(リモートを含む)、ワークツリーの状態、reflogなどは保持されません。これについては、Jess Bowersが述べたように、リポジトリ全体をコピーする必要があります。
このような転送を処理する一般的な方法は、git bundle
です。githubリポジトリのバックアップを参照してください。
2番目の(新しい)デスクトップから:
git bundle create file:///\\oldDesktop/share/myGitRepo --all
ローカルgitリポジトリのクローンを作成できる1つのローカルファイルを作成します。
注:プロトコルはfile:///
UNC(Universal Naming Convention)Windowsパスをサポートし、残りのパスは' /
'の代わりに''を使用し\
ます。WindowsLANでのGitを参照してください。
リモートブランチを削除する必要があると思います。
リモートリポジトリには、マスターだけでなく多くのブランチがありますか?もしそうなら、それはトリッキーです。リモートを削除すると、すべてのリモート/オリジンブランチが削除されるため、すべてのブランチのローカルコピーも作成する必要があります。(試してみました!)
したがって、次のようなことができます。
git clone <remote_url>
cd <repo>
for b in $(git branch -r | grep -v HEAD | grep -v master);do
git branch $(basename $b) $b
done
git remote rm origin
もちろん、Jess Bowersが言ったように、マシンにアクセスできる場合は、tarまたはzip形式でファイルを移動する方が、さらに簡単です。
ベアクローンを作成することもできます。
git clone --bare <remote_url>
そして、そこから新しいクローンを作成します。