Sobes.tech
Junior

Чӣ гуна метавон охирин коммитро дар системаи назорати версияҳо бекор кард?

sobes.tech AI

Ҷавоб аз AI

Ҳангоми истифодаи Git, чанд роҳ мавҷуд аст:

1. Бекор кардани охирин коммит бо нигоҳ доштани тағирот:

git reset --soft HEAD~1
# Охирин коммитро бекор мекунад, тағирот дар индекс боқӣ мемонанд
# Феҳристи корӣ тағир намеёбад

2. Бекор кардани охирин коммит, бекор кардани тағирот дар индекс, аммо нигоҳ доштани тағиротҳои корӣ:

git reset --mixed HEAD~1
# Охирин коммитро бекор мекунад ва индекс кардани тағиротҳоро хориҷ мекунад
# Феҳристи корӣ тағир намеёбад

3. Бекор кардани пурра охирин коммит, аз ҷумла тағирот:

git reset --hard HEAD~1
# Охирин коммитро пурра бекор мекунад
# Тағирот дар индекс ва феҳристи корӣ ба ҳолати пеш аз охирин коммит бармегарданд
# Ҳама тағиротҳои номуайян дар феҳристи корӣ нобуд мешаванд

4. Эҷод кардани коммити нав, ки тағиротҳои охиринро бекор мекунад:

git revert HEAD
# Эҷод кардани коммити нав, ки тағиротҳои охиринро бекор мекунад
# Тарих нигоҳ дошта мешавад, ин роҳи бехатар дар кор бо шохаҳои умумӣ аст

Интихоб ба натиҷаи дилхоҳ ва оё шоха нашр шудааст ё не, вобаста аст. --hard бояд бо эҳтиёт истифода шавад, зеро метавонад ба талафоти маълумот оварда расонад. git revert дар ҳолати кор бо шохаҳое, ки дигарон истифода мебаранд, беҳтар аст.