21

同様の質問があることに気づきましたが、私の質問は少し異なります。複数のコンピューター上の同期されたDropboxフォルダーを介してベアリポジトリを共有することが、Gitを介してコードを共有するために機能するかどうか疑問に思っています。

言い換えると、Dropboxを介してGitリポジトリを共有することは、SSHやHTTPなどを介して1つの集中管理された場所から共有することと同じですか?

リポジトリは各人のローカルドライブで更新されますか?これは、共有ネットワークドライブを介してGitリポジトリを共有することと同じですか?

注:これは経験的な質問ではありません。問題なく機能しているようです。Gitリポジトリの構造がこの共有方法と互換性があるかどうかを尋ねています。

編集明確にする/繰り返すために、私はDropbox上のGitリポジトリをベアリポジトリとして保持することについて話しています。Dropboxでソース管理下にある実際のファイルを保持することについて話しているのではありません。

4

8 に答える 8

20

データが失われる理由はわかりません。Git のリポジトリ構造は堅牢であり、リポジトリ ストア自体では、同じ名前のファイルは常に同じ内容になります (これはブランチ名には当てはまりません)。

とはいえ、効率的ではないでしょう。Git の転送プロトコルは、通常、変更を 1 回だけ転送することを意味します。Dropbox では、2 人がわずかに異なるリポジトリをパックすると、生成されたパックには同一ではなくても重要な共通データが含まれている可能性があるため、DropBox は両方のパックを同期するため、非効率的です。

また、データはすべてそこにありますが、同じブランチが同時に更新された 2 つのコピーが原因で、追跡されていない変更が発生することもあります。これは、各コピーから別のブランチに確実にプッシュすることで回避できますが、面倒です。

于 2010-02-04T12:52:08.913 に答える
15

これは安全ではないと確信しています。Git リポジトリには多数の可動部分があり、Dropbox はそのうちの 1 つを簡単に壊してしまう可能性があります。たとえば、ディレクトリ内のブランチ ヒント (マスターなど) が正しくない場合や、ファイルの内容が間違っているrefsとオブジェクト ストアが機能しなくなる場合があります。objects/info/packsGit リポジトリは非常にシンプルで堅牢ですが、壊れない単なるストレージではありません。

SSH、git、または HTTP を介してリモート リポジトリにアクセスしたり、ネットワーク ファイル システム上でローカルにアクセスしたりすることも安全です。これは、リポジトリがgitプロセスを介してのみアクセスされ、すべてが正しい順序で配置されることが保証されるためです。ただし、Dropbox は注文に関していかなる保証もしないため、データが失われる可能性があります。

代わりに Git サーバー (または任意の SSH サーバー) を使用してください。お持ちでない場合は、GitHubBitbucket、またはGitLabが思い浮かびます。これにより多くの手間が省け、Dropbox を介して共有されるローカル リポジトリよりも使いやすくなります (ローカル パスの代わりに SSH URL を使用するだけです)。

于 2011-02-18T17:18:23.590 に答える
9

Git や Mercurial で Dropbox を使用する際に問題が発生しました。おそらく Dropbox の同期が完全ではないことが原因で、特に複数の場所から変更が行われている場合に、リポジトリ ファイルが破損することがよくあります。また、Dropbox はバックグラウンドで動作するため、同期操作中に誤ってリポジトリを使用しようとする (またはマシンを再起動する) ことは非常に簡単です。

私は Dropbox が大好きですが、共有ドライブや「実際の」リモート Git リポジトリの代わりにはなりません。

于 2010-07-16T14:40:10.333 に答える
5

以前は MobileMe でこれを行っていましたが、コンピューターが同期しなくなりました。各コンピューターには、クラウド内のリポジトリとは異なるリポジトリがあり、MobileMe には「マージ」の概念がないため (DropBox も同様だと思いますよね?)、いずれかのバージョンを選択する必要があります。一部の編集を保持して失うか、編集をコピーして再適用します。中央の Git リポジトリに切り替えてから、生活がずっと楽になりました。

これまでのところうまくいっているなら、それでいい。ただし、2 人の開発者がローカルの裸のリポジトリに同時にプッシュすると、多くの苦痛が生じると思います。DropBox はどちらが正しいかをどのように判断しますか?

于 2010-02-04T12:47:01.770 に答える
2

DropBoxの問題の1つは、履歴バックアップの処理方法に関係しています。個々のファイルをロールバックすることはできますが(過去30日以内、またはPackRatを使用している場合は永久に)、ディレクトリ全体をロールバックすることはできません。これは、何らかの理由でリポジトリが台無しになった場合、履歴バックアップを持つという驚くべきサービスは本質的に役に立たないことを意味します。何千ものファイルをクリックして以前のバージョンに戻す必要があるからです。

そして、他のほとんどの回答で言及されているように、競合状態に問題があります。

于 2010-05-08T10:35:20.067 に答える
0

github.comで自分のリポジトリをプライベートリポジトリとしてホストしているだけです。はい、マイクロプラン($ 7 /プラン)の料金を支払う必要がありますが、外部にコードのバックアップがあることを知っているセキュリティがあります。

于 2011-02-17T08:47:37.600 に答える