2017-02-27 3 views
0

gitを使用しているときは、単にblogとして指摘されているようにfetchmergeとするのが良い考えですマージする前に自分自身で変更内容を確認してください。 これは妥当かつ安全なやり方で、これまで通り続けることができます。Gitで注意深く引っ張る:origin/masterからmasterへの選択的(手動)マージ

しかし、マスターとオリジン/マスターの間でgit diffを実行して、ほとんどのアップデートがうまくいくと判断したら、どうすればよいですか?手動でマージする方法はありますか?私はあなたがそれぞれの単一の変更を決めることを可能にするマージの競合の後に得る編集に似た何かを探しています - ちょっとgit add --patchのように。

私が望むのは、原点/マスターを自分のマスターにマージする前に編集することの能力を持ち、理想的には私のお気に入りのdifftoolです。 これは変更をmasterに適用してからgit push -fで強制的にプッシュすることで実行できますが、これは少し残忍で不要なようです。

一方、cherrypickは非常に有望な名前のように聞こえますが、ファイルの実際の変更ではなく、コミットを選択することしかできません。

どのように高度に選択的/手動でマージできますか? docsのマージ戦略では、これを十分に手動で制御することはできないようです。

答えて

2

マージを行う瞬間に、パラメータ--no-commitを使用します。

git merge --no-commit <branch> 

これはまさに、競合が発生したときと同じである保留中のマージ、としてのステータスを残して、コミットを作成するときにマージを停止します。

このステータスから、必要な変更を行い、必要な変更を加えることができます。

+0

ありがとう、それは十分に簡単だった – untergam

+0

受け入れられた回答の一部としてハンクベースのリセットが追加されました –

関連する問題