[解決済み】git pullとgit fetch + git rebaseの違いは何ですか?
2022-03-27 07:37:17
質問
別の質問
には、次のように書かれています。
git pull
は、まるで
git fetch
+
git merge
.
しかし
git pull
と
git fetch
+
git rebase
?
解決方法は?
この質問から明らかなように、あなたは単に
git merge
と
git rebase
.
自分の master ブランチで何らかの作業をした後、origin のブランチからプルしたとしましょう。フェッチした後の状況は、このようになります。
- o - o - o - H - A - B - C (master)
\
P - Q - R (origin/master)
この時点でマージ(git pullのデフォルト動作)すると、コンフリクトがないと仮定して、以下のような結果になります。
- o - o - o - H - A - B - C - X (master)
\ /
P - Q - R --- (origin/master)
一方、適切なリベースを行った場合、このようになります。
- o - o - o - H - P - Q - R - A' - B' - C' (master)
|
(origin/master)
ワークツリーの内容は、どちらも同じになるはずです。
. リベースによって履歴が書き換えられ、あたかも origin の新しい master ブランチの上でコミットしたかのようになります (
R
) の代わりに、元々コミットした場所 (
H
). 誰かがすでにあなたの master ブランチから pull している場合は、決して rebase のアプローチをとってはいけません。
最後に、実際に設定することができることに注意してください。
git pull
を設定することで、あるブランチに対してマージではなくリベースを使用するようにできます。
branch.<name>.rebase
を true に設定します。また、単一のプルに対してこの操作を行うには
git pull --rebase
.
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] Git が追跡したファイルを .gitignore に登録したまま「忘れる」ようにするにはどうしたらいいですか?
-
[解決済み] リモート Git リポジトリの URI (URL) を変更するには?
-
[解決済み] 新しいローカルブランチをリモートの Git リポジトリにプッシュし、それを追跡するにはどうすればよいのでしょうか?
-
[解決済み] git rebase の取り消し
-
[解決済み] Git フェッチ リモートブランチ
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み] Git で最新のコミットを新しいブランチに移動する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】マージの競合が発生した git stash pop の取り消し
-
[解決済み】Gitのエラー。リモートリポジトリへの接続時に「Host Key Verification Failed」。
-
[解決済み] 複数のgitコミットを元に戻すには?
-
[解決済み] あなたのブランチは 'origin/master' より 3 コミット進んでいます。
-
[解決済み] 短いGitバージョンのハッシュを取得する
-
[解決済み] Git pull - マージする前に移動または削除してください。
-
[解決済み] 警告: リモート HEAD は存在しない参照元を参照しているため、チェックアウトできません。
-
[解決済み] ssh-keygen' は内部コマンドまたは外部コマンドとして認識されません。
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] git pull と git pull --rebase の違いについて