0

現在のプロジェクトでは、github にリポジトリがあります。問題に取り組むたびに、ローカル ブランチを作成し、完了したらリポジトリにプッシュします。プッシュが瞬時に行われることもあれば、すべてのファイルがリポジトリ (150MB) にアップロードされるまで待たなければならないこともあります。よくわかりませんが、ローカルブランチを作成すると、その間にマスターブランチが更新され、現在のローカルが遅れているため、サーバーへのプッシュには常に時間がかかります。

私はローカルを使用して分岐します

git checkout -b branch_name_issue_num

次に、完了したら、変更をレポの新しいブランチにプッシュします

git push origin branch_name_issue_num

すべてのファイルを再度アップロードすることがあるのはなぜですか?

4

1 に答える 1

1

「プッシュが瞬時に行われる」という場合は、おそらく早送りマージを指します。つまり、リモート ブランチからローカル機能ブランチを作成して以来、リモート ブランチには変更がありません。この場合、 は単純に変更を受け入れて、分岐ポインタを更新します。remote

git documentationから引用するには:

そのマージで「早送り」というフレーズに気付くでしょう。マージしたブランチが指しているコミットは、現在のコミットのすぐ上流にあるため、Git はポインターを前方に移動します。別の言い方をすれば、1 つのコミットを、最初のコミットの履歴をたどることで到達できるコミットにマージしようとすると、Git はポインターを前方に移動することで物事を簡素化します。早送り"。

質問の 2 番目の部分については、何を求めているのか正確に理解するのは難しいですか? ローカル機能ブランチをプッシュしてリモート機能ブランチを作成していると思いますが、「なぜすべてのファイルを再度アップロードするのですか?」と言うときの意味がわかりません。

詳細を掘り下げることなく、git はファイルをオブジェクトとして保存します。「ファイル」自体の概念はありません。既存のファイルを変更すると、git はそのファイルの完全に新しいバージョンを保存するのではなく、2 つのファイルの差分のデルタを保存します。

于 2013-02-20T16:42:34.473 に答える