27

この質問は、おそらく.gitsとgitリポジトリの一般的な役割についての私の理解の欠如に基づいていますが:

git initマシン間で作成したコンテンツでdirをrsyncできますか?

ラップトップにリポジトリがあり、そこから離れる唯一の方法は、リモートホストへのscp / rsyncであり、そこから再度ダウンロードできます。これらのホスト間で完全なディレクトリ構造をrsyncできますか?

4

6 に答える 6

32

いくつかの可能性があります:

  • ing中にリポジトリ内にアクティビティがない場合はrsync、リポジトリだけ(またはリポジトリ全体と作業ディレクトリ)を使用できます(プロトコルの使用と同じ免責事項)。.gitrsyncrsync://

  • 非推奨 のプロトコルを使用してクローンまたはフェッチできrsyncます(リポジトリのURL /場所は次のようになります: " rsync://host.xz/path/to/repo.git/")。リポジトリにアクティビティがある場合、破損したクローン(またはフェッチ)が発生する可能性があるため、このプロトコルは非推奨であることに注意してください。

    また、私が聞いたように、2007年以降、パックされた参照が存在する場合は正しく機能せず、最近まで誰も気づいていませんでした。Git 2.8では(実際に)消えます。

  • または、他のマシンでgit bundlersyncit、またはitを作成してから、バンドルからクローンまたはフェッチすることもできます。scp

于 2009-09-09T16:39:45.077 に答える
11

はい、それは可能です。IIRC、gitは相対的なアプローチを使用します。したがって、別のコンピューターと同期しても安全です。

于 2009-09-09T07:17:45.887 に答える
6

問題なくrsyncを実行できますが、マシンにローカルなホスト名で宣言された(つまり、/ etc / hostsにのみ格納されている)リモートがある場合、それらは明らかに機能しません。

ただし、コンテンツの同期にgit自体を使用しない理由はありますか?

于 2009-09-09T07:21:49.623 に答える
5

はい、できますが、このスレッドに示されているように、ベアリポジトリを使用して行う必要があります。

$ 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にすべての詳細があります。

于 2009-09-09T07:20:07.347 に答える
1

はい、ディレクトリを作成rsyncすること.gitは可能であり、リポジトリの完全なクローンが作成されます。

于 2009-09-09T07:18:10.237 に答える
1

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

私は知っています、これは非常に負担がかかり、愚かです..これを行うためのより良い方法があることを私に知らせてください..

于 2017-06-06T08:44:22.300 に答える