git push -f оставить ненужный лог в битбакете - PullRequest
0 голосов
/ 04 июля 2018

Я сделал коммит, выдвинул его, но позже понял, что допустил некоторую ошибку в коде, я делаю git reset HEAD~, и повторяю и push -f, я обнаружил, что в моем PR есть дополнительный журнал. Как мне от этого избавиться?

Ответы [ 3 ]

0 голосов
/ 04 июля 2018

Вы можете распаковать файл с помощью:

git rm --cached <file_name>

Затем вам нужно поместить его в файл .gitignore, чтобы вы не добавили его снова. Если файл создается автоматически и имя меняется от сборки к сборке, вы можете использовать подстановочный знак, например, *.log или target/*.

0 голосов
/ 04 июля 2018

Допустим, у нас есть удаленный origin с веткой master, который в данный момент указывает на фиксацию dd61ab32. Мы хотим удалить коммит top. В переводе на терминологию git мы хотим принудительно установить ветку master исходного удаленного репозитория в parent из dd61ab32:

git push origin +dd61ab32^:master

Где git интерпретирует x^ как родительский элемент x и + как принудительный push без ускоренной перемотки вперед.

Если это последний коммит, который вы хотите удалить локально, то: Необходимы два шага:

git reset HEAD^ --hard
git push origin -f

если это не последний коммит, который вы можете попробовать:

git rebase -i commit_hash^

Переписывание истории или перебазирование, если ветвь уже была сдвинута, обычно плохая идея, и вы также можете предпочесть использовать:

git revert commit_hash

Источник

0 голосов
/ 04 июля 2018

Я бы предположил, что проблема в том, что вы фактически сделали новый коммит поверх вашей ветви, вместо того, чтобы вносить изменения в коммит, который вы хотели переработать. Итак, вот что вы, вероятно, должны были сделать:

# make changes
git commit --amend
git push --force origin master

Это все равно должно оставить вам добавление одного нового коммита на пульт. Однако в целом принудительное нажатие на ветку - это плохая новость в Git, особенно когда другие пользователи могут делиться вашей веткой и, возможно, в какой-то момент уже ее потянули. В этом случае гораздо более безопасный подход - просто сделать новый коммит и нажать его. Или, если хотите, вы можете использовать git revert, чтобы отменить коммит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...