タグ付けされた質問 「git-rebase」

git-rebaseコマンドを使用すると、1つのブランチから変更を取得し、別のブランチの上でそれらを再生できます。

6
強制プッシュを行わずにgit rebaseを使用するにはどうすればよいですか?
git nirvanaを達成するために、私は1日を費やして、現在マージしている状況でリベースを活用する方法を学びます。 私がgit 101フロー(以下で詳しく説明します)と見なすものを実行するpush --forceとき、変更を元に戻すときに実行する必要があります。 (参照私はこれが覆われた地面があることを知っている-私はだけでなく、一人1、2、3、4、5)、と私は技術的な理由を理解し、なぜ力が必要です。私の問題は、リベースとどのようにそれが自分たちの生活を変えていますの賞賛を歌っ多くの(多くの)ブログエントリが(参照がある---これで1、2、3、4の数を一覧表示する)、それらのどれもそれは言及していないpush --forceの一部です。彼らの流れ。ただし、既存のスタックオーバーフローの質問に対するほとんどすべての回答は、「ええ、リベースするつもりなら、使用しなければならない」のようなことを言っていますpush --force。 リベースの支持者の数と信憑性を考えると、「push --force」の使用はリベースフローの本質的な部分ではなく、プッシュを強制する必要がある場合、何かが間違っていると私は信じる必要があります。 push --forceある悪いこと。 これが私の流れです。 力を使わずにどのようにして同じ結果を達成できますか? 簡単な例 2つのブランチ: v1.0-リリースブランチ、パッチのみが含まれます マスター -次のメジャーリリースのすべて。 パッチのコミットと次のリリースのコミットがいくつかあります。 パッチをマスターに組み込んで、次のリリースで失われないようにします。悟りを開く前に、 git checkout master git merge v1.0 しかし、今私はやっています git checkout master git rebase v1.0 だから今私はここにいます: 時間: git push サイコロはありません。
92 git  git-rebase 

3
すべての子を含むブランチのリベース
次のGitリポジトリトポロジがあります。 A-B-F (master) \ D (feature-a) \ / C (feature) \ E (feature-b) リベースによってfeature枝を私は(子供の支店を含む)サブツリー全体をリベースすると予想さ: $ git rebase feature master A-B-F (master) \ D (feature-a) \ / C (feature) \ E (feature-b) ただし、これは実際の結果です。 C' (feature) / A-B-F (master) \ D (feature-a) \ / C \ E (feature-b) 次のコマンドを実行すると、簡単に手動で修正できます。 $ git rebase …

3
誰かがリベースまたはリセットを公開されたブランチにプッシュした後、どのように回復/再同期しますか?
公開された作品をリベースしてはいけない、危険だなどと聞いたことはありますが、リベースが公開された場合の対処法のレシピは見たことがありません。 さて、これはリポジトリが既知の(そしてできれば小さな)人々のグループによってのみ複製される場合にのみ実際に実行可能であることに注意してください。リベースまたはリセットをプッシュする人は誰でも、次に注意を払う必要があることを他の人に通知できますフェッチ(!)。 私が見た明らかな解決策の1つは、ローカルコミットがなくfoo、リベースされた場合に機能します。 git fetch git checkout foo git reset --hard origin/foo これはfoo、リモートリポジトリに従って、その履歴を優先してローカル状態を破棄するだけです。 しかし、そのブランチで大幅なローカル変更を行った場合、どのように状況に対処するのでしょうか。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.