この特定の目的でgitをどのように使用できますか?

この特定の目的でgitをどのように使用できますか?

状況はこんな感じです。ラップトップAとワークステーションBという2台のコンピュータがあります。 Bには固定IPがあり、Aには動的IPがあり、BからAへの接続を避けたい(Sshトンネル設定など、パラメータのためにBからAへのSSHは不可能であると仮定します)。

/home/user/foo.git両方のシステムにgitリポジトリがあります。問題:A:/home/user/foo.gitAの変更を処理し、マージB:/home/user/foo.git。結局のところ、両方のリポジトリは同じでなければなりません。

私が考えることができる最も簡単な解決策は次のとおりです。

A:~$ cd foo.git
A:~/foo.git$ git commit -a
A:~/foo.git$ ssh B
B:~$ cd foo.git
B:~/foo.git$ git commit -a
B:~/foo.git$ logout
A:~/foo.git$ git pull ssh://B/home/user/foo.git
A:~/foo.git$ git push ssh://B/home/user/foo.git master

(これを行うには、これに対する答えで説明されているように、Bのgit設定を変更し、受信後にフックを追加する必要がありました。スタックオーバーフローの質問)

私の質問:

1)上記の内容は正しいですか? 2)同じ目標を達成するより簡単な方法はありますか?

ベストアンサー1

あなたが受け取った後フック私の考えでは、非常に怖い警告がいくつかあります!

同様の設定がありますが、サーバーBには2つのストレージコピーがあります。 1つは、デフォルトのリモート(「ソース」)として使用されるベアストアです。これにより、「git push」と「git pull」のパラメータを指定する必要はありません。最後に、あなたが言及したコマンドを単純化したのがこれです。 (私の場合、Bはサーバーです。そのままにすることができるARMボックスがあります。)

「Gitを実際に使用しない」場合、これは必ずしも最善の考えではありません。 Gitは強力に設計されていますが、UIはまだ他のDVCSほど一貫性がありません。この目的のためのより簡単なツールは次のとおりです。

http://git-annex.branchable.com/assistant/(新しい - まだ試していません)

http://www.cis.upenn.edu/~bcpierce/unison/(古いスタンバイ、SSH経由で動作)

Dropbox(無料ではなくインターネット接続が必要ですが、柔軟でLAN経由での転送も最適化されています)

あるいは、MercurialやDarcsもあります。私はどちらも追加のベアリポジトリを要求したり、コミットフックを心配するGitの問題を避けると思います。 MercurialはGitよりもユーザーフレンドリーでなければなりません。 Darcsのデザインは他のDVCSとは異なるため、これが最善のアイデアではない可能性があります。ドキュメントを見ると、Bazaarはこのシナリオについて懐疑的なようです。

おすすめ記事