git - Как отменить изменения в локально зафиксированном файле - PullRequest
0 голосов
/ 22 февраля 2019

Я сделал следующее, все время на моем локальном BranchA:

  1. Изменить FileA (по ошибке)
  2. git add FileA
  3. git commit -m "Modified FileA"

Итак, FileA находится в моем локальном коммите (никогда не отправляется на удаленный) в моей локальной ветке BranchA (также никогда не отправляется на удаленный).

Как мнеотменить изменения в FileA?

ОБНОВЛЕНИЕ И КАК Я РЕШЕН ЭТО

Я отменил изменения в FileA из SourceTree вместо git, поскольку понял, что это проще для меня.

Для этого в SourceTree выполните команду rc для зафиксированного файла FileA> «Выбор журнала ...»> выберите предыдущий коммит (тот, что был перед вами)> rc для него и выберите «Сбросить на этот коммит».Это сделало свою работу, но спасибо всем

Ответы [ 4 ]

0 голосов
/ 23 февраля 2019

Другой способ сделать это (я предполагаю, что ваш коммит имеет изменения только в файлах, которые вы хотите отменить):

Находясь в вашем филиалеA

git rebase -i HEAD~2

Он выдаст списокдва коммита, исторически отсортированные asc.Последнее, что вы хотели бы изменить.Итак, вы хотите отказаться от этого коммита.Переместите курсор на второй коммит, и вместо pick введите drop или просто d.

Сохраните изменения (в зависимости от вашего редактора это может быть CTRL + X +SHIFT + Y для nano или :wq для vim, и все.

0 голосов
/ 22 февраля 2019

Чтобы отменить изменения в этом файле, но сохранить коммит без изменений, в противном случае:

1) Вернуть файл A в его предыдущее состояние

git checkout HEAD^ -- path/to/fileA

2) Включите это в последний коммит, который вы сделали на BranchA

git commit --amend

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

0 голосов
/ 22 февраля 2019

Сначала вы сбрасываете свою ветку до предыдущего коммита:

git reset @^ --mixed

Затем вы можете использовать checkout для сброса определенных файлов в старое состояние:

git checkout -- files...

Как только вы получитесделано, что вы можете повторно зафиксировать ваши изменения:

git add files...
git commit -m "message"
0 голосов
/ 22 февраля 2019

Вы можете сбросить текущий индекс ветвления на предыдущий коммит с помощью git reset HEAD~1.Добавьте --hard для сброса рабочего каталога или оставьте его выключенным, если вы хотите уточнить изменения и подтвердить.

Если у вас есть другие изменения, которые вы сделали с тех пор, используйте git rebase для перемещения оскорбительного коммитасначала на вершину стека.

...