2017-01-18 18 views
2

私は現在origin/masterからorigin/masterから作成されたブランチにorigin/masterをリベースしていますが、ブランチで作業していた開発者は現在利用できません。インタラクティブなリベースを隠すことは可能ですか?

フィーチャーブランチの最初のコミットでいくつかの競合が解決されましたが、開発者がリベースを完了する方法を知るまで待つ必要があります。

私が既に行った(〜30分)競合解決を維持して別のタスクに移行できる方法はありますか?

答えて

3

すべてgit stashはコミットを行います。 (まあ、2つのコミットが、この時点では問題ではありません。git stashのコミットはでなく、ブランチにあり、奇妙な構造になっていますが、鍵はコミットを行うことです。 Gitのgit notesはコミットされています!スタッシュのように、ブランチにはありませんが、ファイルを保存するため、コミットします)

git stashでコミットできるのは、 git commit

マージ競合の解決を完了していない場合は、基本的にスタックしません。 は、コミットする前にすべての競合を解決する必要があります。これについて詳しくは、How can I save a git "rebase in progress"?を参照してください。

git worktree addを持つ十分なGitを持っている場合、それぞれ異なるブランチ上に複数の作業ツリーを設定できます。各作業ツリーはという独自のインデックスを取得します(これが重要な理由については、他の質問と回答を参照してください)ので、 "the"インデックスにマージの競合がある進行中のリベースを残し、別の作業の別のブランチに切り替えます通常の作業を行います。言い換えれば、 "the"索引は作業木ごとの索引になりました。したがって、マージ競合が "the"索引にあるという事実は、その作業木を "ロックアップ"します。

+0

フィードバックをいただきありがとうございます。これは、フードの下で起こっていることを私に伝えます。私はこの質問がウサギの穴に私を導くだろうと想像しなかったでしょう... – cellover

0

今後、rerereを使用すると、解像度を記録できます。これは即座に30分間のリベースに戻ることはありませんが、それは多くの助けになるはずです。基本的には、停止したポイントまでの解決を確認するだけです。なぜrerereがGitの標準として来ないのか分かりません。とても役に立ちます。

+0

将来、あなたは答えを編集し、すべてのアイデアを単一の答えに集中させることができます。 –

0

もう1つの単純な解決策は、単にgitリポジトリ、mid-rebaseを含むフォルダ全体をコピーすることです。これは常に機能するはずです。完了したらそのフォルダを削除することをお勧めします(リベースしてプッシュしてください)。

0

もう1つのアイデアは、コミットしてブランチのミッドリベースを作成し、その後git cherry-pickをアンリベースしたコミットを後で残すことです。

関連する問題