2012-07-08 12 views
7

リモート(sshを使用)にgitリポジトリが含まれていない場合でも、ローカルリポジトリをリモートにコピーし、手動でファイルをコピーせずにリモートトラッキングを設定することはできますかscpを使用して、次にgitクローンが続く?リモートが存在しない場合にリモートに押し込む方法

答えて

9

doリモートでリポジトリをセットアップする必要がありますが、ファイルを手動でコピーしないでください。少なくとも、あなたはそれを使って歴史を得ることはできません。リモートへ

まず、sshとは、次の操作を行います。

mkdir your_repo.git 
cd your_repo.git 
git init --bare 

ディレクトリ名に.gitは完全に任意です。 --bareオプションは、インデックスなしでリポジトリを作成するため、プッシュ可能です。

あなたは、あなたのローカルリポジトリに戻って、リモートを追加します。

git remote add remote_name [email protected]:path/to/your_repo.git 

あなたはすべてのセットです。今すぐ行う必要があるのは、

git push remote_name 
+0

です。おかげさまで、リモコンが裸のレポではない場合はどうしたらいいですか?ありがとう – Ryan

+1

一般的に、それは良い考えではありません。私はそれがすべて可能であるかどうかはわかりませんが、そうでない場合でも、非裸のリポジトリに移動するということは、そのリポジトリ上ですべてのものを矛盾させずにマージする必要があることを意味します。参照[ここ](http://stackoverflow.com/questions/1764380/push-to-non-bare-repository)、[ここ](http://gitready.com/advanced/2009/02/01/push -to-only-bare-repositories.html)および[ここ](http://sitaramc.github.com/concepts/bare.html) – Shahbaz

1

Iiがあなたが(SCPとはい、)レポをコピーすることができ、SSHアクセスを持っていますが、コピーだけファイル:git bundle

そこから、そのバンドルをリモートサーバー上の裸のレポ(クローンできる1つのファイルとして機能する)としてクローン化し、それをリモートのリポジトリ(リモートの裸のレポにプッシュすることができます)として使用できます。