Ответ 1
Вы можете просто удалить staging
и воссоздать его на основе beta
:
git branch -D staging
git checkout beta
git branch staging
У меня две ветки. Стадии и бета-версии. В нем есть код (включая файлы), который я вообще не хочу. Как я могу заставить Beta полностью перезаписать Staging, так что ни один из этих файлов или кода не будет объединен с Staging into Beta.
Я вижу, что некоторые люди рекомендуют это делать:
git checkout staging
git merge -s ours beta
Но я не считаю, что ранее существовавшие файлы были бы "конфликтом кода" и поэтому не будут удалены. Я ошибаюсь? Если я прав, как бы я это сделал?
Вы можете просто удалить staging
и воссоздать его на основе beta
:
git branch -D staging
git checkout beta
git branch staging
Если вам не все равно о старой истории staging
, вы можете просто воссоздать ее:
git checkout beta
git branch -f staging
Если вы заботитесь о старой истории staging
, тогда все становится веселее:
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 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.
Я предлагаю вам просто переименовать его, если вы передумаете.
git branch -m staging staging_oops
git checkout beta
git branch staging
Если вы действительно не можете иметь эту дополнительную ветку вокруг:
git branch -D staging_oops
Если история постановки не будет проблемой, вы можете просто сделать это.
git checkout staging
git reset --hard beta
Просто запомните, что история постановки исчезнет после вышеупомянутой команды и > будет работать с вашей ветвью бета.