web-dev-qa-db-ja.com

git pull --rebase vs git rebase:危険は何ですか?

他のオプションなしでは、git pull --rebasegit rebaseの違いがわかりません。

それらが安全であるか、良い習慣であるか、非常に危険であるかはわかりません。

ローカルでgit pull --rebaseを実行することでコミットの歴史を破ることができますか?

30
sab

リベースはまったくお勧めしませんが、プライベートブランチにのみ使用してください。 privateによって、自分だけがプルしたと確信しているブランチを意味します。

リベースはブランチの開始点をより新しいコミットに変更し、すべてのコミットをその点にマージします。これにより、リポジトリに古いブランチベースが存在するユーザーとの競合が発生する可能性があります。常にプレーンマージをお勧めし、特定の状況(機能ブランチなど)にのみリベースを残します。

あなたの質問について:

  • git rebase必要なブランチをリベースします。
  • git pull --rebaseは、プルするブランチでフェッチ+リベースを実行します。通常、プルはフェッチ+マージになります。
20
Luis

git pull --rebaseは、デフォルトのgit fetchとは対照的に、git rebaseの省略形であり、次にプレーンgit mergeです。実際の違いは、後者のみを適用すると、ローカルリポジトリがすでに認識していることのみを考慮に入れるため、コードをリベースする前にリモートからの新しいコミットを fetch しないということです。

競合のマージは、通常のgit pullと同じように表示されることにも言及する価値があります。

12
everton