[解決済み] GitHub/BitBucketでマージコミット地獄を回避する方法
2022-10-14 03:06:43
質問
私たちのレポには、このようなコミットがたくさんあります。
Merge branch 'master' of bitbucket.org:user/repo
これは開発者が自分のローカルフォークをトップレベルレポに同期するたびに発生します。
このマージコミット地獄がすべてのリポジトリログを乱雑にするのを避ける方法はありますか?何らかの方法で pull-requests を開始するときに、それらを避けることができますか?
git rebase がローカルの VM 上だけで実行される場合、GitHub/BitBucket の UI に同等のものがあるのでしょうか?
皆さんはどのようにされていますか?
どのように解決するのですか?
マージする前にフィーチャーブランチをリベースする
マージコミットを避けたい場合は、すべてのコミットが fast-forward であることを確認する必要があります。そのためには、このようにマージする前に機能ブランチを開発ラインにきれいにリベースするようにします。
git checkout master
git checkout -b feature/foo
# make some commits
git rebase master
git checkout master
git merge --ff-only feature/foo
Rebase には多くのフラグがあり、対話的なリベースも可能です。
-i
フラグもありますが、できるだけシンプルに、かつマージ時にすべてのブランチ履歴を保存したい場合は必要ないかもしれません。
を使用します。
--ff-only
フラグ
リベースとは別に
--ff-only
フラグを使用すると、fast-forward コミットのみが許可されるようになります。代わりにマージコミットが行われる場合は、コミットは行われません。git-merge(1) のマニュアルページには、次のように書かれています。
--ff-only
マージすることを拒否し、ゼロ以外のステータスで終了します。 HEADがすでに最新であるか、マージが早送りとして解決されるのでなければ として解決できる場合を除き、マージと終了をゼロ以外のステータスで拒否します。
関連
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] 既存の、プッシュされていないコミットメッセージを修正するには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] Git リポジトリでのマージの衝突を解決するには?
-
[解決済み] GitHubでフォークされたリポジトリを更新または同期するにはどうすればよいですか?
-
[解決済み] 現在のGitブランチをmasterブランチにする
-
[解決済み] detached HEADとmaster/originの連携はどうすればいいですか?
-
[解決済み] Gitのプッシュを正しく強制する方法は?
-
[解決済み】Gitのワークフローとrebaseとmergeの質問
-
[解決済み] git add を実行してもしなくても、ブランチを切り替えたときに自分の変更点(修正、追加、削除されたファイル)が表示され続けるのはなぜですか?
最新
-
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 push] 解決策: ! [リモート拒否] master -> master (受信前のフックは拒否されました)
-
gitlab をアップロード ! [リモート拒否] dev -> dev (受信前のフックが拒否されました)
-
GitのPlease enter a commit messageで、このマージが必要な理由を説明してください。
-
Git エラー: ヒント: リモートにあなたが持っていない作業が含まれているため、更新が拒否されました ヒント: あなたが持っていない作業です。
-
コミットには何も追加されないが、未追跡のファイルが存在する解決策
-
なぜこのマージが必要なのかを説明するコミットメッセージを git に入力してください。
-
git push please tell me who you are or git fatal: empty ident name (for <>) not llowed.
-
[解決済み] 単一のgitコミットに対して設定されたユーザーを上書きする
-
[解決済み] バージョン管理には、なぜタグとリリース/ベータブランチを使い分ける必要があるのでしょうか?
-
[解決済み] プル前にローカルとGitHubのリポジトリの差分を確認する方法 [重複]について