gitはブランチを上書きしますが、履歴は保持します

freshdevelop

開発ブランチのすべてのコンテンツを別のコンテンツ(つまり、マスター)で上書きしたいのですが、開発ブランチの古いコミットを見逃したくありません。

これは私が欲しいものです:

私が欲しいもの

私は私たちの戦略マージすることとハードリセットを行うことの両方を試みましたが、devブランチは古いコミットを失い続けています。

私が取得しようとしているのは、青と赤の差がゼロのコミットと、最初の黒のコードと青の差があるときにドロップされたコードです。


これまでに試みたソリューションの概要を共有するだけです。これを行うことによって:

git checkout master
git merge -s ours dev
git checkout dev
git merge master

私はこれを取得します(開発者はマスターからすべての履歴を取得します)

マージ

これを行うことによって

git checkout dev
git reset --hard master

私はこれを取得します(開発をプッシュすると、すべてのブラックコミットが失われます):

リセット

私がこれを行う場合:

git checkout dev
git merge $(git commit-tree -p dev -m "Align master > dev" master^{tree})

私はこれを取得します(ほぼ完璧ですが、トリックを行った正確な瞬間を思い出すのは難しいでしょう):

ここに画像の説明を入力してください

マレクR

これは次のようになります。

git checkout -f develop # go to develop branch
git merge --no-commit master
git checkout master -- . # this checkouts code from master and doesn't switch branch
# you are still in merge process on branch develop
git commit

テーリング-- .はの動作を変更することに注意してくださいgit checkout

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

git:ブランチをマージしますが、コミット履歴は保持します

分類Dev

GIT:QAブランチをマスターで上書きし、QAブランチの履歴を保持する方法は?

分類Dev

Gitは私がいたブランチの履歴を取得します

分類Dev

git mergeは、ブランチを置換または上書きします

分類Dev

git:特定のブランチをプルし、最新のツリーのみを保持します(履歴なし)

分類Dev

gitマージ後、ブランチのコミット履歴をgitロググラフに保持します

分類Dev

Visual Studio 2017は、すべてのgit履歴を表示することはできず、現在のブランチのみを表示します

分類Dev

[Git]特定のファイルの履歴を抽出して新しい空のブランチに書き出す方法は?

分類Dev

ブランチからコミットを選択し、後でブランチ全体をマージすると、git履歴はどうなりますか?

分類Dev

`reflog`は、作成、移動、操作、マージ、または削除されたブランチ名の履歴レコードを保持しますか?

分類Dev

gitにファイルを追加し、変更を追跡しますが、履歴は保持しません

分類Dev

histappendがonに設定されていても、bashは履歴を上書きします

分類Dev

履歴が上書きされたブランチにリベースする方法は?

分類Dev

ブランチ履歴を保持しながら、以前にマージされたブランチからの過去のコミットを修正します

分類Dev

履歴が書き換えられたフォークにアップストリームブランチをマージします

分類Dev

git:すべての履歴からファイルとディレクトリを削除しますが、(マスターブランチだけでなく)すべてのブランチを保持します

分類Dev

コマンド「gitreset--hard <commit>」は別のブランチのコミット履歴を削除しますか?

分類Dev

ブラウザはいつ履歴を記録しますか?

分類Dev

コミットを保持しながら、残りの履歴を集約しながら、ブランチを別のリポジトリに移動します

分類Dev

履歴が変更されたときにgitブランチをプルする方法は?

分類Dev

Gitブランチが時間の経過とともにどのように変化したか(履歴の書き換えを含む)をどのように確認できますか?

分類Dev

コミット履歴から孤立したブランチを削除します

分類Dev

Gitでは、ソースブランチの履歴が変更されたときに、機能ブランチからどのようにリベースしますか?

分類Dev

bashは履歴を保持しません

分類Dev

bashは履歴を保持しません

分類Dev

いくつかのブランチを持つgit履歴の特定のコミットを削除しますか?

分類Dev

Pythonは前のプロットで履歴を上書きし続けますが、目的のプロットで保存しません

分類Dev

MercurialとGitは、更新したチェンジセットの履歴を保存しますか?

分類Dev

マージはブランチのコミット履歴を変更できますか?

Related 関連記事

  1. 1

    git:ブランチをマージしますが、コミット履歴は保持します

  2. 2

    GIT:QAブランチをマスターで上書きし、QAブランチの履歴を保持する方法は?

  3. 3

    Gitは私がいたブランチの履歴を取得します

  4. 4

    git mergeは、ブランチを置換または上書きします

  5. 5

    git:特定のブランチをプルし、最新のツリーのみを保持します(履歴なし)

  6. 6

    gitマージ後、ブランチのコミット履歴をgitロググラフに保持します

  7. 7

    Visual Studio 2017は、すべてのgit履歴を表示することはできず、現在のブランチのみを表示します

  8. 8

    [Git]特定のファイルの履歴を抽出して新しい空のブランチに書き出す方法は?

  9. 9

    ブランチからコミットを選択し、後でブランチ全体をマージすると、git履歴はどうなりますか?

  10. 10

    `reflog`は、作成、移動、操作、マージ、または削除されたブランチ名の履歴レコードを保持しますか?

  11. 11

    gitにファイルを追加し、変更を追跡しますが、履歴は保持しません

  12. 12

    histappendがonに設定されていても、bashは履歴を上書きします

  13. 13

    履歴が上書きされたブランチにリベースする方法は?

  14. 14

    ブランチ履歴を保持しながら、以前にマージされたブランチからの過去のコミットを修正します

  15. 15

    履歴が書き換えられたフォークにアップストリームブランチをマージします

  16. 16

    git:すべての履歴からファイルとディレクトリを削除しますが、(マスターブランチだけでなく)すべてのブランチを保持します

  17. 17

    コマンド「gitreset--hard <commit>」は別のブランチのコミット履歴を削除しますか?

  18. 18

    ブラウザはいつ履歴を記録しますか?

  19. 19

    コミットを保持しながら、残りの履歴を集約しながら、ブランチを別のリポジトリに移動します

  20. 20

    履歴が変更されたときにgitブランチをプルする方法は?

  21. 21

    Gitブランチが時間の経過とともにどのように変化したか(履歴の書き換えを含む)をどのように確認できますか?

  22. 22

    コミット履歴から孤立したブランチを削除します

  23. 23

    Gitでは、ソースブランチの履歴が変更されたときに、機能ブランチからどのようにリベースしますか?

  24. 24

    bashは履歴を保持しません

  25. 25

    bashは履歴を保持しません

  26. 26

    いくつかのブランチを持つgit履歴の特定のコミットを削除しますか?

  27. 27

    Pythonは前のプロットで履歴を上書きし続けますが、目的のプロットで保存しません

  28. 28

    MercurialとGitは、更新したチェンジセットの履歴を保存しますか?

  29. 29

    マージはブランチのコミット履歴を変更できますか?

ホットタグ

アーカイブ