Ich habe zwei Zweige. Inszenierung und Beta. Inszenieren enthält Code (einschließlich Dateien), den ich überhaupt nicht möchte. Wie kann ich Staging vollständig überschreiben lassen, sodass keine dieser Dateien oder Codes von Staging zu Beta zusammengeführt werden.
Ich sehe einige Leute empfehlen dies zu tun:
git checkout staging
git merge -s ours beta
Ich glaube jedoch nicht, dass die bereits vorhandenen Dateien ein "Code-Konflikt" wären und daher nicht entfernt werden würden. Liege ich falsch? Wenn ich recht habe, wie würde ich das erreichen?
Sie können einfach staging
löschen und basierend auf beta
neu erstellen:
git branch -D staging
git checkout beta
git branch staging
Wenn Sie sich nicht für die alte Geschichte von staging
interessieren, können Sie sie einfach neu erstellen:
git checkout beta
git branch -f staging
Wenn dir die alte Geschichte von staging
wichtig ist, dann wird es mehr Spaß:
git checkout staging # First, merge beta into staging so we have
git merge -s theirs beta # a merge commit to work with.
git checkout beta # Then, flip back to beta's version of the files
git reset --soft staging # Then we go back to the merge commit SHA, but keep
# the actual files and index as they were in beta
git commit --amend # Finally, update the merge commit to match the
# files and index as they were in beta.
Ich schlage vor, Sie benennen es einfach um, falls Sie Ihre Meinung ändern.
git branch -m staging staging_oops
git checkout beta
git branch staging
Wenn Sie diesen zusätzlichen Zweig wirklich nicht aushalten können:
git branch -D staging_oops
Wenn die Geschichte der Inszenierung kein Thema sein wird, können Sie dies einfach tun.
git checkout staging
git reset --hard beta
Denken Sie daran, dass die Historie der Inszenierung nach dem obigen Befehl verschwunden ist und stagingdie Arbeit Ihresbetabranch hat.