[解決済み] git rebase --fork-point master` とはどういう意味ですか?
質問
私のユースケースは 自分のコミットを変更する を公開する前に、コミットメッセージを書き換えたりいくつかのコミットを削除したりといったことができます。 コミットを新しい拠点に移動したくないのですが。
そのために、私はいつも次のようなことをしています。
git rebase -i HEAD~4
ここで、quot;4" という数字は、私の feature ブランチのコミットを手作業で数えた結果です。
Gitには、以下のようなコマンドはないのでしょうか?
"機能ブランチのすべてのコミットに対して対話式リベースを開始しますが、そのコミットをより新しい
master
- そのままでいいんです"。
. を発見しました。
--fork-point
のオプションは
git rebase
で、これを試してみました。
git rebase -i --fork-point master
しかし、これには目立った効果はなく、以下のような挙動となります。
git rebase -i master
.
代わりに、これは私が必要とすることを行います。
git rebase -i $(git merge-base --fork-point master)
のドキュメントを読みました。
--fork-point
で
git rebase
のドキュメントを参照しましたが、なぜ私の期待する結果にならなかったのか、よく理解できません。どなたか説明していただけませんか?
どのように解決するのですか?
期待した結果にならなかったのは
--fork-point
は新しいコミットのベースを決定することとは関係ありません[1]。
そのため、デフォルトでは新しいコミットのベースは上流(
master
この場合)、そして
--fork-point
はその影響を受けません。
(参考までに、どのような
--fork-point
は、どのコミットを書き換えるべきかを推測する計算を改良するために reflog を使用しています。 これは常にというわけではありませんし、私の経験では
しばしば
- 非常に便利です)。
選択肢は2つ、マージベースを上流として使うか - おっしゃるとおり - あるいは
--onto
オプションを使用して、新しいベースを明示的に設定します (この場合、元のベースと一致するように設定します)。
[1] - 概念的にはコミットを編集していることになりますが、実際には rebase は常に新しいコミットを書き込んでいます - 何もしないときを除いて。 ですから、コミットを「編集」するときは、実際には古いコミットと同じような、しかし編集された新しいコミットを作成することになります。
関連
-
[解決済み] git pull リモートブランチがリモートの参照先を見つけることができない
-
[解決済み】マージが終了していません(MERGE_HEADは存在します)。
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] git rebase の取り消し
-
[解決済み] Gitによるhotfixブランチのfeatureブランチへのマージ
-
[解決済み] 既にリベースを開始している場合、2つのコミットを1つにマージするにはどうすればよいですか?
-
[解決済み] Git で最新のコミットを新しいブランチに移動する
-
[解決済み】Gitでコミットをチェリーピックするというのはどういう意味ですか?
-
[解決済み】Featureブランチのリベースの後、Gitプッシュが拒否される。
-
[解決済み】Gitのワークフローとrebaseとmergeの質問
最新
-
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-mergeの-dry-runオプションはありますか?
-
[解決済み】git push >> fatal: 設定されたプッシュ先がありません。
-
[解決済み] [Solved] 作業ツリーのディレクトリ 'example.com' を作成できませんでした。パーミッションが拒否されました
-
[gitコミット失敗の解決] 現在のブランチの先端が後ろにあるため、更新が拒否されました。
-
git revert + git rebase 一度に複数のコミット_本然233的博客程式员息信网_git revert Multiple
-
[解決済み] リモートの <ブランチ名> とマージするように設定されていますが、そのような参照は取得されませんでしたか?
-
[解決済み] このリポジトリで別の git プロセスが実行されているようです。
-
[解決済み] 複数のコミットをチェリーピックする方法
-
[解決済み] "would clobber existing tag "を取り除くには?
-
[解決済み] エラーです。リベースを使用してプルできません。あなたはステージングされていない変更を持っています