Видалити коміти з філії в Git


3231

Я хотів би знати, як видалити комітку.

До delete, я маю в виду, як якщо б я не робив , що здійснював, і коли я роблю поштовх в майбутньому, мої зміни не буде штовхати до віддаленої гілки.

Я читаю довідку з git, і думаю, що команда, яку я повинен використовувати, - це git reset --hard HEAD. Це правильно?


41
Я думаю, що це не дублікат останньої фіксації Git скасувати, оскільки він запитує, як видалити будь-яку комісію з гілки. Я також думаю, що невідповіді насправді стосуються цього питання. Всі вони натягають останні коммітов, що не cherry-pickта deleteодин Комміт , який міг статися якийсь час назад.
Кріс

12
@Chris, відповідь з git rebase -i HEAD~10вирішенням питання стосується цього питання, оскільки він дозволяє довільно вибрати зобов'язання для видалення. Git застосовує коміти в діапазоні, який ви задаєте один за одним, ігноруючи комісії, які ви видалили з журналу. Я використовував цю команду сьогодні, щоб позбутися другого та третього останніх зобов’язань для мого репо, зберігаючи верхній. Я згоден, що жодна з інших відповідей не задовольняє.
MST

@MST так, я мав би сказати, не з варіантів у прийнятій відповіді вирішуйте це питання, але ви абсолютно праві - ця команда, здається, працює
Кріс

Відповіді:


4125

Обережно: git reset --hard БУДЕ ВИДАЛЕНО ВІДМІННУВАННЯ ПРИМІТКИ РОБОТИ . Не забудьте зберегти всі локальні зміни, які ви хочете зберегти, перш ніж виконувати цю команду.

Якщо припустити, що ви сидите на цій фіксації, то ця команда її розіб'є ...

git reset --hard HEAD~1

В HEAD~1означає , що зробити , перш ніж голова.

Або, ви можете подивитися на висновок git log, знайти ідентифікатор фіксації комісії, на який потрібно створити резервну копію, і виконайте це:

git reset --hard <sha1-commit-id>

Якщо ви його вже натиснули, вам потрібно буде зробити силовий поштовх, щоб позбутися від нього ...

git push origin HEAD --force

Однак , якби інші, можливо, потягнули його, тоді вам краще почати нову гілку. Тому що, коли вони потягнуть, це просто з’єднає його зі своєю роботою, і ви змусите його знову відштовхуватися.

Якщо ви вже натиснули, можливо, буде краще використовувати git revertдля створення "дзеркального зображення" комісію, яка скасує зміни. Однак обидва коміти будуть у журналі.


FYI - git reset --hard HEADце чудово, якщо ви хочете позбутися РОБОТИ В ПРОГРАМІ. Він поверне вас до останньої версії та видалить усі зміни вашого робочого дерева та індексу.


Нарешті, якщо вам потрібно знайти комісію, яку ви "видалили", вона зазвичай присутня, git reflogякщо ви не зібрали сміття зі свого сховища.


59
HEAD~1або просто HEAD^. Якщо ви натиснули, вам слід скористатися git revertнатомість.
Якуб Нарбський

13
Очевидно, що ви також можете скористатися, HEAD~nщоб "повернутись" nдоручень з голови. Можливо, з цього моменту ви можете трактувати ... --hard HEADтакож як HEAD~0=> видалення незавершеної роботи.
нуала

13
@ beamrider9 imho git rebase майже завжди є кращим способом видалення комітетів (як це описано у відповіді Грега Х'югілла) - не в останню чергу тому, що ребаза насправді включає велике попередження про те, що ви будете видаляти матеріали 4realz.
Ной Суссман

20
це не видаляє зміни з дерева фіксації. ОП просила вже взяти на себе зобов’язання. Якщо ви reset --hardі перевірте log --oneline --all, комісії все ще залишаються на дереві. Як видалити ці комірки з дерева? Дякую.
iGbanam

17
використовувати reset --softдля видалення локальної комісії БЕЗ повернення незавершеної роботи!

704

Якщо ви ще ніде не натискали на зобов’язання, ви можете скористатися, git rebase -iщоб видалити це. По-перше, з’ясуйте, наскільки далеко (приблизно) назад ця фіксація. Потім зробіть:

git rebase -i HEAD~N

В ~Nкошти перебазуватися останні Nкоммітов ( Nповинен бути числом, наприклад HEAD~10). Потім ви можете відредагувати файл, який вам подає Git, щоб видалити порушувач. Після збереження цього файлу Git перепише всі наступні зобов’язання так, ніби той, який ви видалили, не існує.

У книзі Git є хороший розділ про повторне використання зображень та прикладів.

Будьте обережні з цим , хоча, тому що якщо ви щось щось змінити , що ви вже штовхнули в іншому місці, інший підхід буде необхідний , якщо ви не плануєте робити сили поштовху.


2
Примітка. Якщо у вас є будь-які --no-ff злиття в останній партії комітетів, ребаза буде їх розкроювати :( про це йдеться в розділі -p на цій сторінці . Проблема полягає в тому, що якщо ви заміните -i на -p, Ви більше не отримуєте цього спливаючого вибору для "редагувати цю комісію, зменшити цю" і т. д. Хто-небудь знає рішення?
Буков

4
Що робити, якщо ти її підштовхнув? (тільки я використовую дистанційне репо)
Costa

6
@Costa можна використовувати push -fдля примусового натискання та заміни віддаленої гілки на локальну. Якщо це лише ваше власне віддалене репо, без проблем. Біда починається, якщо хтось ще тим часом зайшов.
Грег Хьюгілл

3
Я додав і ввів файл даних, який був занадто великим для GitHub (так, це, мабуть, не повинно бути у вихідному репо-репоті; ну добре). Коли я намагався натиснути, GitHub відмовився через занадто великий файл. Все, що я хотів зробити, - це скасувати це одне зобов’язання, в той же час зберегти декілька інших непов'язаних комітетів, які випливали після цього. git rebase -i HEAD~5Команда була саме те , що мені потрібно , щоб повністю видалити це зобов'язання від мого місцевого репо! Дякую!
альдо

4
@dumbledad: З rebase -i, зміни, що відповідають видаленому комітету , не зберігаються.
Грег Хьюгілл

517

Ще одна можливість - одна з моїх особистих улюблених команд:

git rebase -i <commit>~1

Це запустить ребазування в інтерактивному режимі -iв точці безпосередньо перед фіксацією, яку ви хочете вдарити. Редактор почне перелічувати всі документи з того часу. Видаліть рядок, що містить комісію, яку ви хочете видалити та зберегти файл. Rebase виконає решту роботи, видаливши лише те, що виконується, та повторно відтворивши всі інші назад у журнал.


3
thx, btw, якщо у вас git rebase --continue
виникли

8
Ще простіше: git rebase -i HEAD~1
mmell

2
Вовчиці. git rebase -i HEAD~1дійсно чистили репо багато! Важко точно сказати, що це зробило, але вся справа виглядає набагато акуратніше. Насправді трохи тривожно.
Чарльз Вуд

7
Я думаю, що варто відзначити, що комісія не знищена, а лише видалена зі списку. Якщо ви зіпсуєте, ви можете повернути фіксацію за допомогою рефлогу .
Заз

6
Чи видалення рядка збігається з d / drop?
Лев

344

Я додаю цю відповідь, тому що не бачу, чому кожен, хто щойно намагався виконати роботу, хотів би видалити всю цю роботу через деяку помилку використання Git!

Якщо ви хочете зберегти свою роботу і просто "скасувати" команду "виконувати" (ви зловили її перед натисканням на репо):

git reset --soft HEAD~1

Не використовуйте прапор --hard, якщо ви не хочете знищити свою роботу, що виконується з моменту останнього вчинення.


5
Ось приклад того: ви виконуєте невелику роботу на сервері розробки, який ви здійснюєте. Тоді виявляється, що на цьому сервері немає доступу до HTTPS, тож ви не можете нікуди натискати на комісію. Найпростіше просто зробити вигляд, що цього ніколи не було, і переробити патч з локальної машини.
Стів Беннетт

1
@KarthikBose завжди буде рефлог. навіть після того, як git reset --hard HEAD~1ваша попередня остання комісія буде доступна через reflog (поки термін її дії не закінчується); дивіться також тут: gitready.com/intermediate/2009/02/09/…
кодування

4
Дякую. Цю відповідь слід класифікувати вище або включити до прийнятої відповіді. Видалення комітету! = Повернення комітету.
Альссенде

2
@RandolphCarter: ви все одно втратите будь-які невідомі зміни.
naught101

7
@Rob, один із прикладів, коли ви випадково вводите файл, який містить секрет (наприклад, пароль), який ніколи не повинен знаходитись у контролі джерела. Місцевий комітет повинен бути знищений , а не просто скасований, так що він ніколи не буде натиснений на сервер.
Боб Мейєрс

141

Видалення цілої комісії

git rebase -p --onto SHA^ SHA

Очевидно замініть "SHA" на посилання, яке ви хочете позбутися. "^" У цій команді є буквальним.

http://sethrobertson.github.io/GitFixUm/fixup.html#change_deep


26
як я можу підтримати більше цю відповідь ??? інші рішення просто показують, як це робити в інтерактивному порядку або видалити верхні комісії.
рибамар

5
-p, --preserve-merges Відтворіть об'єднання об'єднань замість вирівнювання історії шляхом повторного введення об'єктів введення. Вирішення конфліктних конфліктів або вручну поправки до об'єднань комісій не зберігаються.
raittes

5
Це фактично точна відповідь
Хамман Самуїл

9
Там сказано, "замініть SHA на посилання, яке ви хочете позбутися", але лінія має SHA там двічі. Ось що я зробив. git rebase -p --onto 5ca8832c120 ^ 5ca8832c120 Але нічого не змінилося. Чи повинен я використовувати один і той же SHA двічі? Якщо ні, то яка SHA для зобов’язання, яку потрібно зняти, і яка інша SHA повинна бути?
Рубіксман

3
WOW, це працювало бездоганно! Це має бути прийнята відповідь!
Liran H

51

Якщо ви не опублікували зміни, для видалення останньої комісії ви можете це зробити

$ git reset --hard HEAD^

(зауважте, що це також видалить усі незапущені зміни; використовуйте обережно).

Якщо ви вже опублікували комісію, яку потрібно видалити, скористайтеся функцією відновлення git

$ git revert HEAD

Це не спрацювало. Коли я git log, все ще є, незалежно від того, чому я це роблю, це просто додає більше комісій. Я хочу очистити історію.
Коста

@Costa: Що не працювало (тобто, яку версію ви використовували), і як ви працювали в журналі?
Якуб Нарбський

Я спробував майже все на цьому питанні. (Я спробував відновити git відновити HEAD, останнім часом) Мій журнал git:tree = log --all --graph --format=format:'%C(bold blue)%h%C(reset) %C(dim black)%s%C(reset)%C(bold red)%d%C(reset) %C(green)by %an, %ar%C(reset)'
Коста

1
Я просто хочу видалити коміти (як би, ніби їх ніколи не було). Я вирушив у якусь дивну кодуючу пригоду, з кількома новими подіями, і все закінчилося сміттям. Як я можу просто стерти їх з мого журналу git?
Коста

2
Святе лайно щось магічно зробило саме те, що я хотів .... яка з цих команд це зробила? !!?!
Коста

44

Скажімо, ми хочемо видалити комірки 2 і 4 з репо.

commit 0 : b3d92c5
commit 1 : 2c6a45b
commit 2 : <any_hash>
commit 3 : 77b9b82
commit 4 : <any_hash>

Примітка. Потрібно мати права адміністратора на репо, оскільки ви використовуєте --hardта -f.

  • git checkout b3d92c5 Оформити останню корисну комісію.
  • git checkout -b repair Створіть нову гілку, над якою працюватимете.
  • git cherry-pick 77b9b82 Пробігся через коми 3.
  • git cherry-pick 2c6a45b Пробігся через фіксацію 1.
  • git checkout master Майстер замовлення
  • git reset --hard b3d92c5 Скиньте майстер до останнього корисного виконання.
  • git merge repair Об’єднайте нашу нову гілку на головну.
  • git push -f origin master Відправити майстра до віддаленого репо.

1
Останній крок повинен бути git push -f origin master, немає варіанту--hard
Vivex

2
Я здогадуюсь commit 0старше commit 1. Скажіть, будь ласка, чому спочатку пробігаєте через commit 3(вишневий), а потім commit 1? Після оформлення замовлення b3d92cd( commit 0), я б очікував, що вишня виберіть commit 1, тоді commit 3. Дякую.
Jarek C

@JarekC Я думаю, що найпопулярніша фіксація - це найновіша фіксація тут, якщо я бачу щось не так ...
Jeff Huijsmans

41
git reset --hard commitId

git push <origin> <branch> --force

PS: CommitId посилається на той, до якого потрібно повернути


git push --force <origin> <branchName>. так як без згадування імені гілки це може змінити весь файл на віддаленому.
sheelpriy

39

Насильно змінюйте історію

Припустимо, що ви не просто хочете видалити останню комісію, але хочете видалити конкретні комісії з останніх n комісій, перейдіть з:

git rebase -i HEAD~<number of commits to go back>, тож git rebase -i HEAD~5якщо ви хочете переглянути останні п’ять комітетів.

Потім в текстовому редакторі змініть слово , pickщоб dropпоруч з кожною фіксації ви хотіли б видалити. Збережіть та закрийте редактор. Вуаля!

Додатково зміни історії

Спробуйте git revert <commit hash>. Повернення створить нове зобов’язання, яке скасовує вказане зобов’язання.


dropключове слово не визначено. Щоб видалити комітку, просто видаліть увесь рядок.
Шаян Салехіян

1
Для мене drop було визначено як ключове слово, але виконання краплі, здається, не видалило фіксацію з історії. Однак видалення рядка з інтерактивної бази даних.
Адам Паркін

Це саме те, що мені було потрібно. Чудово працює; Дякую!
diekunstderfuge

30

Якщо ви хочете виправити останню прихильність, ви можете скасувати фіксацію та зняти з неї файли, виконавши:

git reset HEAD~1

Це поверне ваше сховище до його стану до того, як git додасть команди, які інсценізували файли. Зміни будуть у вашому робочому каталозі. HEAD ~ 1 відноситься до комірок нижче поточного кінчика гілки.

Якщо ви хочете відмовитись від N комісій, але збережіть зміни коду у вашому робочому каталозі:

git reset HEAD~N

Якщо ви хочете позбутися своєї останньої комісії і не хочете тримати зміни коду, ви можете зробити «жорсткий» скидання.

git reset --hard HEAD~1

Так само, якщо ви хочете відмовитись від останніх N комісій, а не хочете, щоб зміни коду були такі:

git reset --hard HEAD~N

22
git rebase -i HEAD~2

Тут "2" - це кількість комісій, які ви хочете відновити.

'git rebase -i HEAD`

якщо ви хочете відновити всі комісії.

Тоді ви зможете вибрати один із цих варіантів.

p, pick = use commit

r, reword = use commit, but edit the commit message

e, edit = use commit, but stop for amending

s, squash = use commit, but meld into previous commit

f, fixup = like "squash", but discard this commit's log message

x, exec = run command (the rest of the line) using shell

d, drop = remove commit

Ці рядки можна переупорядкувати; вони виконуються зверху вниз. Якщо ви видалите тут рядок, ЩО ЗВ'ЯЗКОВО БУДЕ ВІДБУДЕНО. Однак якщо ви видалите все, ребаза буде перервана. Зауважте, що порожні комісії коментуються

Ви можете просто видалити цю команду, скориставшись опцією "d" або Видалення рядка, на якому є ваш коміт.


В останній версії git більше немає d . Щоб видалити їх, потрібно просто видалити рядки з комісіями.
Олег Абражаєв

17

Щоб видалити в локальній філії, використовуйте

git reset --hard HEAD~1

Щоб видалити у віддаленій гілці, використовуйте

git push origin HEAD --force

12

[Швидкий відповідь]

У вас є багато альтернатив, наприклад:

  • Альтернатива 1:

    git rebase -i <YourCommitId>~1
    

    Змініть YourCommitId на номер комісії, до якого потрібно повернути.

  • Альтернатива 2:

    git reset --hard YourCommitId
    git push <origin> <branch> --force
    

    Змініть YourCommitId на номер комісії, до якого потрібно повернути.

    Я не рекомендую цей варіант, тому що ви можете втратити роботу, яка триває.

  • Альтернатива 3:

    git reset --soft HEAD~1
    

    Ви можете зберегти свою роботу і лише скасувати комісію.


подякувати подяку подякував подяку (Y)
Хабіб Рехман

11

Джерело: https://gist.github.com/sagarjethi/c07723b2f4fa74ad8bdf229166cf79d8

Видаліть останню фіксацію

Наприклад, ваше останнє зобов’язання

git push origin + aa61ab32 ^: майстер

Тепер ви хочете видалити це зобов’язання, а потім простий спосіб зробити це наступним чином

Кроки

  1. Спочатку скиньте гілку до батьківського поточного комітету

  2. Силою натисніть на пульт.

git reset HEAD^ --hard

git push origin -f

Для конкретної фіксації слід скинути наступне

git reset bb676878^ --hard

git push origin -f

9

Ось ще один спосіб зробити це:

Оформіть гілку, яку ви хочете відновити, а потім відновіть свою локальну робочу копію назад до зобов’язання, яке ви хочете бути останньою на віддаленому сервері (все після цього пройде до побачення). Для цього в SourceTree я клацнув правою кнопкою миші на і вибрав "Скинути BRANCHNAME до цього зобов'язання". Я думаю, що командний рядок:

git reset --hard COMMIT_ID

Оскільки ви тільки що віддалено перевірили свою філію, у вас не буде місцевих змін, щоб переживати про втрату. Але це втратило б їх, якби ти.

Потім перейдіть до локального каталогу вашого сховища та запустіть цю команду:

git -c diff.mnemonicprefix=false -c core.quotepath=false \
push -v -f --tags REPOSITORY_NAME BRANCHNAME:BRANCHNAME

Це видалить усі комісії після поточного у вашому локальному сховищі, але лише для цієї гілки.


9

Помилка:

Я git rebase -i --rootредагував свою гілку, невідомо думаючи, що можу переробити першу команду, що відрізняється від головного (перегляд за замовчуванням GitHub для Windows - це порівняння з головним, приховуючи його повністю).

Я вирощував бороду з Кремнієвої долини, тоді як 900 і більше комітетів завантажувались у Піднесене. Вийшовши без змін, я зарядив свою батарею, після чого продовжував голитися, оскільки всі 900+ осіб здійснюють нестабільну перезарядку - скидаючи свій час фіксації до цього часу.

Вирішений перемогти Git і зберегти початкові часи, я видалив це локальне сховище і повторно клонував з віддаленого.

Тепер він знову додав останню непотрібну фіксацію, яку я хотів би зняти, тому я продовжував так.

Вичерпання параметрів:

Я цього не хотів git revert- це створить додатковий комітет, даючи перевагу Git.

git reset --hard HEADнічого не зробив, перевіривши reflog, останнім і єдиним HEADбув клон - Гіт перемагає.

Щоб отримати останню SHA, я перевірив віддалений сховище на github.com - незначний виграш.

Подумавши git reset --hard <SHA>, що я працював, я оновив ще одну гілку до майстра та 1 ... 2 ... пуф! фіксація повернулася - Гіт перемагає.

Перевірка назад майстра, час для спробу git rebase -i <SHA>, а потім видаліть рядок ... безрезультатно, сумно сказати. " Якщо ви видалите тут рядок, ЩО ЗВ'ЯЗКОВО БУДЕ ВІДГУТЕНО " Ах ... оглянувся новою функцією тролль n00b у нотатках про випуск 2.8.3 .

Рішення:

git rebase -i <SHA>то d, drop = remove commit.

Щоб перевірити, я перейшов до іншої гілки, і вуаля - не приховуючи зобов'язання взяти / витягнути з майстра.

https://twitter.com/holman/status/706006896273063936

Гарного вам дня.


8

Усі команди, наведені вище, відновлюють стан вашого робочого дерева та індексують його таким, яким вони були до того, як зробити команду, але не відновлюють стан сховища. Якщо ви подивитесь на це, "видалений" комікт насправді не видаляється, він просто не той, який знаходиться на кінчику поточної гілки.

Я думаю, що немає засобів для видалення комірки з порцелянових команд . Єдиний спосіб - видалити його з журналу та відмикати, а потім виконати git prune --expire -now.


1
Порядок, у якому відповіді відображаються в StackOverflow, не встановлено. Будь ласка, не посилайтеся на "Усі команди вище". Зробіть власну відповідь самостійною.
Паскаль Куок

Ця відповідь не зовсім правильна. git prune насправді є однією з команд "порцеляни" . Крім того, рідко ви хочете повністю очистити свій рефлог (одним із випадків використання є видалення конфіденційної інформації з репо-репортажу, але, як я вже сказав, це рідкісний випадок використання). Частіше за все вам потрібно буде зберігати старі комісії у запиті, якщо вам потрібно буде відновити дані. Див. Розділ Pro Git: 9.7 Git Internals - обслуговування та відновлення даних .

8

Якщо ви хочете зберегти історію, показуючи фіксацію та відновлення, слід використовувати:

git revert GIT_COMMIT_HASH

введіть повідомлення, пояснюючи, чому ви повертаєтесь, а потім:

git push  

Коли ви видаєте, git logви побачите як "неправильні" повідомлення, так і повернення журналу.


Так, але в ОП було зрозуміло, що це не те, чого вони хочуть.
Стів Беннетт

7

Якщо ви просто зіпсували своє останнє зобов’язання (неправильне повідомлення, забули додати деякі зміни) і хочете виправити це, перш ніж надсилати його до публічного репо, чому б не використовувати:

git commit --amend -m "New message here"

Якщо у вас є нещодавно внесені зміни, вони будуть поєднані з останньою комісією (якої ви намагаєтеся позбутися) і замінять її.

Звичайно, якщо ви внесете зміни до комісії після того, як ви його натиснули, ви переписуєте історію, тому якщо ви це зробите, обов'язково зрозумійте наслідки.

Ви також можете передати параметр '--no-edit' замість '-m', якщо ви бажаєте використовувати повідомлення попереднього фіксації.

Документи: http://git-scm.com/docs/git-commit.html


2
Це не те, про що просить ОП.
Стів Беннетт

5

Якщо ви вже натиснули, спочатку знайдіть команду, яку ви хочете бути в HEAD ($ GIT_COMMIT_HASH_HERE) , а потім запустіть наступне:

git reset --hard $GIT_COMMIT_HASH_HERE
git push origin HEAD --force

Потім кожне місце репо було клоновано, запустіть:

git reset --hard origin/master

5

Що я зазвичай роблю, коли я здійснюю і натискаю (якщо хтось підштовхнув його, це вирішить проблему):

git reset --hard HEAD~1

git push -f origin

сподіваюся, що ця допомога


5

Я вже штовхнув. Потрібно віддалено повернути деякі зобов'язання. Спробував багато варіацій, але тільки це від Джастіна через git bush для мене добре працює:

git reset --hard $GIT_COMMIT_HASH_HERE
git push origin HEAD --force

4

Скидання на місцевому відділенні

git reset --hard HEAD~<Number of commit> So git reset --hard HEAD~3

Примусити натиснути до походження

git push -f origin

3

Візьміть резервну копію коду в папку temp. Наступна команда буде скинута так само, як і сервер.

git reset --hard HEAD
git clean -f
git pull

Якщо ви хочете зберегти зміни та видалити останні комісії

git reset --soft HEAD^
git pull


2

видалити локальну комісію

Як ви бачите на наведеному вище зображенні, я хочу видалити повернути "тест зміни 2" фіксації (SHA1 ID: 015b5220c50e3dfbb1063f23789d92ae1d3481a2 (ви можете отримати ідентифікатор SHA1, використовуючи gitkкоманду в git bash)).

Для цього я можу використовувати (все нижче команда працює лише на локальних. Вам потрібно натиснути після видалення):

  1. git reset --hard 515b5220c50e3dfbb1063f23789d92ae1d3481a2// це резервне копіювання до цього коміту (SHA1 ID зміни 4 тесту - 515b5220c50e3dfbb1063f23789d92ae1d3481a2 )
  2. git reset --hard HEAD~1 // це резервне копіювання перед одним вчиненням.
  3. git reset --hard HEAD^ // Для видалення останнього коміту від git

після видалення:

після видалення фіксації


2

git reset --hard HEAD~1
Ви будете зараз на попередньому голові. Потягніть гілку. Натисніть новий код. Коміти буде видалено з git


Якщо ви вже не підштовхнули зміни. У такому випадку жорсткий перезавантаження не очистить ваш пульт. У цьому випадку хороша опція
c0der512

1

git reset - твердий

git push origin HEAD - сила

Якщо один або декілька комітетів позначені тегами, спочатку видаліть теги. Інакше позначена комітка не видаляється.


0

використовуйте git revert https://git-scm.com/docs/git-revert . Він поверне весь код, тоді ви можете зробити наступне введення. Тоді голова вкаже на останнє виконання. відмінені зобов’язання ніколи не видаляються, але це не вплине на останню прихильність.


0

У моєму випадку мій магічний код для цієї мети:

git reset --hard @{u}

Випробуй це і скажи мені. Я спробував декілька різних, але цей був мені єдиним, хто допоміг.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.