[解決済み] [Solved] gitでマージをプレビューするには?
質問
あるgitブランチ(例えばメインライン)を持っていて、別の開発ブランチにマージしたいのですが、どうすればいいですか?それとも、そうする必要がありますか?
このブランチを本当にマージするかどうかを判断するために、マージによって何が行われるのか、何らかのプレビューを確認したいのですが。できれば、適用されるコミットの一覧を見ることができるようにしてほしいです。
今のところ、私が思いつく最高のものは
merge --no-ff --no-commit
で、次に
diff HEAD
.
解決方法は?
私の場合、最も効果的な解決策は、次の方法です。 マージを実行し、コンフリクトが発生した場合は中止する。 . この特定の構文は、私にとってクリーンでシンプルに感じられます。これは 戦略2 を以下に示します。
しかし、現在のブランチを確実に混乱させたくない場合、あるいはコンフリクトの有無にかかわらずマージする気になれない場合は、単にそこから新しいサブブランチを作成してそれをマージすればいいのです。
戦略1: 安全な方法 - 一時的なブランチからマージする。
git checkout mybranch
git checkout -b mynew-temporary-branch
git merge some-other-branch
そうすれば、コンフリクトを確認したいだけなら、一時的なブランチを捨てるだけでいいのです。わざわざマージを中止する必要もありませんし、自分の作業に戻ることもできます。'mybranch' をもう一度チェックアウトすれば、マージされたコードやマージの競合があなたのブランチに発生することはありません。
これは基本的に予行演習です。
戦略2:絶対にマージしたいが、コンフリクトがない場合のみマージする場合
git checkout mybranch
git merge some-other-branch
gitがコンフリクトを報告した場合(そして がある場合のみ が競合している場合、その後に行うことができます。
git merge --abort
マージが成功した場合、それを中止することはできません(リセットのみ)。
マージする準備が整っていない場合は、上記の安全な方法を使用してください。
[EDIT: 2016-Nov - ほとんどの人が "安全な方法"を探しているようなので、戦略1を2に入れ替えました。戦略2は、マージに対処する準備ができていない競合がある場合、単にマージを中止することができるという注意書きのようなものです。コメントを読む場合は覚えておいてください!]
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] Git が追跡したファイルを .gitignore に登録したまま「忘れる」ようにするにはどうしたらいいですか?
-
[解決済み] Git リポジトリでのマージの衝突を解決するには?
-
[解決済み] まだプッシュされていない 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 revert <hash> not allowed due to a merge but no -m option was given.
-
[解決済み】Git サブモジュール head 'reference is not a tree' エラー
-
[解決済み】git-mergeの-dry-runオプションはありますか?
-
Gitのプッシュでエラーが発生! [リモート拒否] master -> master (pre-receive hook declined) error: failed to push s...
-
[解決済み】マージが終了していません(MERGE_HEADは存在します)。
-
[解決済み] git: fatal: リモートリポジトリから読み取れませんでした。
-
[解決済み] git initを2回実行すると、リポジトリが初期化されますか?それとも既存のリポジトリを再初期化しますか?
-
[解決済み] リモートブランチにプッシュできない、ブランチに解決できない
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] 隠し場所に対する Git の diff