Как отменить git rm после фиксации

#git

Вопрос:

У меня есть имя файла file.txt .

Я внес некоторые изменения в file.txt .

Я фиксирую и продвигаю эти изменения.

Но теперь я понимаю, что мне не нужно никаких изменений в файле в текущей ветке. Так ошибочно я поступил git rm file.txt . А затем зафиксируйте и внесите эти изменения для удаления. Но он показывает, что удалил этот файл в моей ветке.

Все, чего я хочу, — это чтобы я не хотел видеть никаких изменений file.txt в своей ветке.

Кто-нибудь может мне здесь помочь, пожалуйста? Я много искал в StackOverflow. Есть много ответов, но я не смог найти свой случай.

Комментарии:

1. Я думаю, что вы хотите просто добавить файл в .gitignore

2. Нет, нет, этот файл находится в главной ветви, поэтому я не могу .gitignore. Я просто не хочу никаких различий в своей отрасли.

3. Отмените удаление и добавьте файл в .gitignore . Если это не то, что вы имели в виду, не могли бы вы, пожалуйста, рассказать подробнее?

4. Я не хочу никаких различий в file.txt в моем филиале. Что file.txt и в главной ветви тоже. И я нахожусь в отдельной ветви.

Ответ №1:

 git reset HEAD
 

Должен это сделать. Если у вас нет каких-либо незафиксированных изменений, которые вас волнуют, то

 git reset --hard HEAD
 

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

 git stash
git reset --hard HEAD
git stash pop
 

Ответ №2:

Итак, наконец-то я получил ответы, которые мне нужны. Вот шаги, которым я следовал.

 git checkout deletion_commit_id^ -- file.txt
 

Это приведет к отмене удаления , а затем add , commit и push .

После этого я отменил все изменения в этом файле.

 git checkout origin/master file.txt.
 

А потом add , commit и push .