github でリモート リポジトリのクローンを作成しようとしていますが、サイズが大きく、接続が十分に安定していないように見えるため、正常にクローンできません。
しかし、リポジトリの .zip を正常にダウンロードできました。
git clone で作成されたこの zip を使用して、プッシュ、プルなどを行う方法はありますか?
ここの関連記事では、.git
ディレクトリを取得し、 umläuteが提供する回答を簡素化するために必要な情報を提供しています。
.git
裸のリポジトリを複製してディレクトリを取得します
$ mkdir repo
$ git clone --bare http://github/user/repo repo
ディレクトリ.git
を作成し、複製されたファイルを移動します
$ mkdir repo/.git
$ mv repo/* repo/.git
リポジトリを解凍します
$ unzip repo.zip
リポジトリを再初期化する
$ cd repo
$ git init
同期されていることを確認する
$ git pull
HEAD をリセットしてステータスをクリーンアップする
$ git reset HEAD
リポジトリのログは次のとおりです...リポジトリの場所- http://github.com/udacity/fullstack-nanodegree-vm
$ git log
commit ebcbda650bc81d7f4856f5314a0689cea5b43086
Merge: 574774b b5b787e
Author: Karl Krueger <karl@udacity.com>
Date: Tue Apr 7 11:39:54 2015 -0700`
Merge pull request #3 from pmallory/sharedDirAlert
Add a login alert to explain how to access Vagrant's shared directory
commit b5b787efdb1ecec0c3c9c7f9c0fd4732f984fcb3
Author: Philip Mallory <philip@udacity.com>
Date: Mon Apr 6 15:40:32 2015 -0700`
move the alert into the motd
commit b8012f33c86b0d19fc4c2b972af092e88d00978f
Author: Philip Mallory <philip@udacity.com>
Date: Mon Apr 6 14:32:01 2015 -0700`
Add a login alert to explain how to access Vagrant's shared directory
commit 574774ba29ccd661154431d5600240f090440c37
Author: Lorenzo Brown <lorenzo@udacity.com>
Date: Wed Mar 11 14:08:02 2015 -0700`
Update pg_config.sh
Added installs for Auth&Auth
commit 88fc5537b1a0017a1d76af4587a22412473809a4
Author: Lorenzo Brown <lorenzo@udacity.com>
Date: Wed Mar 4 13:00:25 2015 -0800`
Update and rename vagrant to vagrant/catalog/README.txt
commit f978cdc14c62b7295d8da1a95452faaa1bd108b8
Author: Lorenzo Brown <lorenzo@udacity.com>
Date: Wed Feb 4 11:06:03 2015 -0800`
Update Vagrantfile
switched to port forwarding on 8080
commit d6a3a26578ef3c6d01d28abca76d817938892c7f
Author: Lorenzo Brown <lorenzo@udacity.com>
Date: Tue Feb 3 14:52:34 2015 -0800`
Update Vagrantfile
Added:
config.vm.network "forwarded_port", guest: 80, host: 8080
config.vm.network "forwarded_port", guest: 5000, host: 5000
FSF uses these two ports for lessons 2 & 3 respectively.
commit 752a79e408c7328ef7f1766d1b97bb468ffed90a
Author: Mike Wales <michael.wales@udacity.com>
Date: Mon Feb 2 11:21:29 2015 -0800`
Removed .vagrant directory
commit 5af9d19adf9ab19b1d886f6cc78e556f864b42dd
Author: Mike Wales <michael.wales@udacity.com>
Date: Mon Feb 2 11:16:45 2015 -0800`
Initial commit.
リポジトリ (ディレクトリを含む) をダウンロードした場合は、.git
非常に簡単です。
リポジトリを解凍します
$ unzip repo.zip
remote
クローンURIを指すようにリポジトリに構成します
$ cd repo
$ git init
$ git remote add origin https://github.com/user/repo.git
リポジトリを再同期する
$ git pull
実際には、github からの「zip」ダウンロードにはディレクトリが含まれていない.git
ように見えるため、これは役に立ちません :-(
おそらく最善の策は、アクセスが安定しているマシンでクローンを作成し、.git ディレクトリを圧縮して、何らかの方法でフェッチすることです....
受け入れられた答えはそのトリックを行いますが、これはもう少し簡単に思えます。
unzip <repo>.zip
cd <repo>
git init
git add .
git remote add origin https://github.com/<user>/<repo>.git
git remote update
git checkout master
<user>
&<repo>
を github ユーザー名とリポジトリ名に置き換えてください ;)
クローン作成に代わる唯一のzip のような方法は「バンドル」を交換することですが、残念ながら github はバンドルの作成/ダウンロードを提供していません。
github からダウンロード可能な zip アーカイブは、リポジトリ履歴 (通常はブランチの先端) の 1 つの特定のコミットのスナップショットに過ぎず、履歴は含まれていません — この機能は、コード ベースのユーザーに自動的に提供することを目的としています (開発者ではありません!) プロジェクトのソース コードのスナップショットを簡単にダウンロードする方法があります。単なるユーザーや、オペレーティング システム用にソフトウェアをパッケージ化するダウンストリーム メンテナーは、通常、履歴全体を複製するのではなく、tarball を使用して作業することに注意してください。
つまり、zip アーカイブのダウンロードはgit archive
、リモート側で実行して結果のファイルを渡すのと同じように機能します。
また、github (およびその他の Git ホスティング プロバイダー) でホストされているリポジトリは「ベア」であることに注意してください。つまり、「.git」サブディレクトリが含まれていません。
いずれにせよ、これを解決する唯一の方法は、高速で信頼できるリンクを見つけて、それを使用して最初のダウンロードを行うことです。
ただし、完全な履歴がなくても問題ない場合は、状況が変わることに注意してください。次に、「--depth」コマンドライン パラメータを に渡すことで、いわゆる「浅いクローン作成」を使用できますgit clone
。