この質問は、おそらく.gitsとgitリポジトリの一般的な役割についての私の理解の欠如に基づいていますが:
git init
マシン間で作成したコンテンツでdirをrsyncできますか?
ラップトップにリポジトリがあり、そこから離れる唯一の方法は、リモートホストへのscp / rsyncであり、そこから再度ダウンロードできます。これらのホスト間で完全なディレクトリ構造をrsyncできますか?
いくつかの可能性があります:
ing中にリポジトリ内にアクティビティがない場合はrsync
、リポジトリだけ(またはリポジトリ全体と作業ディレクトリ)を使用できます(プロトコルの使用と同じ免責事項)。.git
rsync
rsync://
非推奨 のプロトコルを使用してクローンまたはフェッチできrsync
ます(リポジトリのURL /場所は次のようになります: " rsync://host.xz/path/to/repo.git/
")。リポジトリにアクティビティがある場合、破損したクローン(またはフェッチ)が発生する可能性があるため、このプロトコルは非推奨であることに注意してください。
また、私が聞いたように、2007年以降、パックされた参照が存在する場合は正しく機能せず、最近まで誰も気づいていませんでした。Git 2.8では(実際に)消えます。
または、他のマシンでgit bundle、rsync
it、またはitを作成してから、バンドルからクローンまたはフェッチすることもできます。scp
はい、それは可能です。IIRC、gitは相対的なアプローチを使用します。したがって、別のコンピューターと同期しても安全です。
問題なくrsyncを実行できますが、マシンにローカルなホスト名で宣言された(つまり、/ etc / hostsにのみ格納されている)リモートがある場合、それらは明らかに機能しません。
ただし、コンテンツの同期にgit自体を使用しない理由はありますか?
はい、できますが、このスレッドに示されているように、ベアリポジトリを使用して行う必要があります。
$ git clone --bare ./projet projet.git
$ rsync -a --stats --delete ./projet.git/ votre.serveur:~/projets/projet.git/
注:6年以上後、git 2.8(2016年3月)は正式に非推奨になり、git rsyncプロトコルを完全に削除します!
Jeff King()によるcommit 0d0bac6(2016年1月30日)を参照してください。( Junio C Hamanoによってマージされました---コミット9f03176、2016年2月17日)peff
gitster
ソースリポジトリが
git clone
長い間参照をパックしていると、rsyncを介したトランスポートが壊れており、誰もそれに気づいたり不満を言ったりしていません。
Jeff King(peff
)からのコミット0d0bac6にすべての詳細があります。
はい、ディレクトリを作成rsync
すること.git
は可能であり、リポジトリの完全なクローンが作成されます。
rsyncを使用して.gitをバックアップすることは可能ですが、(少なくとも私自身にとっては)1つのキャッチで更新することはできません。次回rsyncを再試行すると、オブジェクトの名前が大幅に変更されます。それらを削除することはできません。rsyncまたはLinuxシステムに慣れていないため、rsyncする前に.gitバックアップを削除します。
これは:
> chmod -R 777 /path/of/your/backup/.git
> rm -fr /path/of/your/backup/.git
> rsync /path/of/your/origin/.git /path/of/your/backup/.git
私は知っています、これは非常に負担がかかり、愚かです..これを行うためのより良い方法があることを私に知らせてください..