1

私のリーダーは、課題をメイン ブランチにマージするように言っています。まず、私がすべきです

git fetch
git checkout main-branch
git reset --hard origin/main-branch # ???
git checkout my-branch
git merge main-branch

これは、ローカルのメインブランチを正しく早送りマージしてオリジンに一致させているようです。どうしてこれなの?そうじゃないかな

git merge origin/main-branch

また

git pull origin main-branch

違いはなんですか?

4

2 に答える 2

3

git fetchリモートブランチを更新して、すべての新しいコミットをそれらに含めます。というわけorigin/main-branchで後日更新。したがって、ローカルに切り替えてmain-branchリモート ブランチにリセットすると、ローカル ブランチがリモートから更新されたブランチにリセットされます。

通常、この効果を得るにはgit pullonを使用します。main-branchこれには、リモート ブランチに含まれていないローカル コミットがある場合に、それらが自動的にマージされるという大きな利点もあります。したがって、使用するとコミットが失われる可能性があるので注意してください。reset --hard

ところで。基本的にはa が続くgit pullのと同じなので、どちらでも構いません。手動で実行すると、更新したい複数のリモート ブランチがある場合に役立ちます (デフォルトではすべてのリモート ブランチがフェッチされるため)。git fetchgit mergegit fetchgit fetch

別の非常に安全なオプションは、 を使用することgit pull --ff-onlyです。これは、ローカル コミットがないと思われるローカル ブランチを更新するときに通常行うことです。リモート ブランチの一部ではないローカル コミットが発生した場合は、警告が表示され、何もマージされません。そのため、コミットがどこから来たのかを最初に把握し、たとえば誤って間違ったブランチなどにコミットしたかどうかを確認できます。

于 2013-06-03T19:48:07.850 に答える