squash` と `--no-ff --no-commit` の違いは何ですか?
質問
マイクロコミットを隠すには、どれを使うべきですか?
の違いだけですか?
git merge --squash
と
git merge --no-ff --no-commit
相手の両親の否定?
どのように解決するのですか?
相違点
これらのオプションは別々の目的のために存在します。リポジトリは異なる結果になります。
トピックブランチでの開発が終わった後、あなたのリポジトリがこのようになったとします。
--squash
masterをチェックアウトして
git merge --squash topic; git commit -m topic
をチェックアウトすると、このようになります。
--no-ff --no-commit
その代わり、もしあなたが
git merge --no-ff --no-commit; git commit -m topic
とすると、このようになります。
マイクロコミットの隠蔽
本当に隠したいのであれば(つまり
削除
をリポジトリから削除することです)、マイクロコミットには
--squash
. なぜなら、上の画像でわかるように、squash しなければマイクロコミットを本当に隠していることにはならないからです。 また、通常、トピックブランチを世に問うことはありません。 トピックブランチは、トピックが成熟するためにあるのです。
履歴にすべてのマイクロコミットを残したいが、それらを別の開発ライン (上の画像の緑色の線) に残しておきたい場合、次のようにします。
--no-ff --no-commit
. しかし、a) これはブランチではないこと、b) Git では実際には何の意味もないこと、なぜならこれはあなたのコミットのもうひとつの親に過ぎないことを覚えておいてください。
を参照してください。 Gitのブランチ - ブランチとは何か をご覧ください。
関連
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] Git でブランチからコミットを削除する
-
[解決済み] git rebase の取り消し
-
[解決済み] Gitブランチをmasterにマージする最も良い(そして最も安全な)方法は何ですか?
-
[解決済み] .gitignoreと.gitkeepの違いは何ですか?
-
[解決済み] Git で現在のコミットのハッシュを取得する方法は?
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み] Git で最新のコミットを新しいブランチに移動する
-
[解決済み】Gitバージョン管理でファイルの変更履歴を見る
-
[解決済み] CVS から Git への移行: $Id$ 相当?
最新
-
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 プロセスが実行されているようです。たとえば、「git commit」によって開かれたエディタなどです。
-
gpg: "xxx" をスキップ: 秘密鍵のための1つの解決策が利用できない
-
git pushで "Updates were rejected because your current branch is behind "というエラーが報告される。
-
解決策正しいアクセス権を持っていることと、リポジトリが存在することを確認してください。
-
[解決済み] なぜ git はデフォルトで fast-forward マージを行うのですか?
-
Git Bash报错发生: メールアドレスが自動検出されない (「Anita@newton.(none)」を取得)的解决方法。
-
[解決済み] Git のリモート HEAD を master 以外に指定するように変更する
-
[解決済み] gitは "サイレントモード "で動作しますか?
-
[解決済み] 別のユーザーでコードをコミットするにはどうすればよいですか?
-
[解決済み] ファイル変更時のDockerコンテナの再構築