15

私たちは仕事でgitに移行しています。バージョン管理下にあるかなり大きなリソース(〜500MB)を備えた、かなり大きなプロジェクトがあります。

今日、私たちはブランチをリモートサーバーにプッシュしようとしましたが、gitがプロジェクト全体をアップロードしようとしているように見えることに驚いていました。gitは、変更が加えられた4〜5個のテキストファイルのデルタのみを送信することを期待していました(マスターへの通常のプッシュの場合と同様)。これはリモートブランチの仕組みではありませんか?使用git push origin some_branch_nameしましたが、この場合に使用するより良いコマンドはありますか?大きなリソースをgitに保存するべきではありませんか?そうでない場合、人々は通常このシナリオをどのように処理しますか?ある開発者が、マスターブランチに変更をコミットせずに、進行中の作業を別の開発者と共有するためのより良い方法はありますか?現状では、リモートブランチをプッシュするために約15分を見ていますが、これは実際には機能しません。何が間違っているのですか?

4

2 に答える 2

2

いくつかのことで投稿を更新できますか?

プロジェクトがどのように見えるかをよりよく理解するために、次の上位 10 件以上のエントリを投稿してください。

git log --decorate=short --oneline --graph --all

大きなリソースがバイナリの場合は、git に保存しないでください。これらのバイナリ リソースが更新された場合、git はそれらの完全な複製を内部的に作成する必要がありますが、これは圧縮アルゴリズムが好まないものであり、それらをサーバーに送信します。それらに対して何をするかについては、シナリオによって異なります。詳しく説明する必要があります。

複数の開発者が同じリモコンで作業しているようです。これは正しいです?もしそうなら、開発者が直接コミットするべきでmasterはありません(とにかく決して起こらないはずです)。各開発者が独自の名前付きブランチを持つことができます。たとえば、開発者のジョンは、すべてのブランチを の下に作成できますjohn/<branch_name>。これにより、ワークフローをクリーンに保つことができます。

また、git はデルタでは機能しません。ファイルが変更されるたびに、ファイル全体が保存されます。これは非効率に見えるかもしれませんが、使用される圧縮によってサイズが最小限に抑えられます。また、チェックアウトとログ履歴のスキャンがはるかに高速になります。視覚化については、Git の基本の最初のセクションをお読みください。

于 2013-03-22T10:29:22.640 に答える