Да и Нет.
В простейшем случае нормально пропускать «return None», потому что он возвращает None только в одном отрицательном состоянии.
Но если есть оценка вложенных условий и несколько сценариев, в которых функция может вернуть None. Я хотел бы включить их в качестве визуальной документации сценариев.
[Редактирование: на основе комментария ниже]
return or return None
blockquote>Я предпочитаю «возвращать None», чтобы обнажить «возврат», поскольку он явный, и позже никто не будет сомневаться в том, что возвращение означает возвращение None или было ошибкой, поскольку что-то не было.
Если вы еще не отправили свои изменения, вы также можете выполнить мягкий сброс:
git reset --soft HEAD^
Это отменит фиксацию, но вернет зафиксированные изменения обратно в ваш индекс. Предполагая, что ветки относительно актуальны по отношению друг к другу, git позволит вам выполнить проверку в другой ветке, после чего вы можете просто выполнить фиксацию:
git checkout branch
git commit
Недостатком является то, что вам нужно повторно ввести сообщение фиксации .
Чтобы откатить один коммит (убедитесь, что вы записали хэш коммита для следующего шага):
git reset --hard HEAD^
Чтобы перенести этот коммит в другую ветку:
git checkout other-branch
git cherry-pick COMMIT-HASH
Также обратите внимание, что git reset --hard
убьёт все неотслеживаемые и изменённые изменения, которые у вас могут быть, так что если у вас есть такие изменения, вы можете предпочесть:
git reset HEAD^
git checkout .
Если вы уже отправили свои изменения, вам нужно будет принудительно выполнить следующее нажатие после сброса HEAD.
git reset --hard HEAD^
git merge COMMIT_SHA1
git push --force
Предупреждение: полный сброс отменит все незафиксированные изменения в вашей рабочей копии, а принудительное нажатие полностью перезапишет состояние удаленной ветви текущим состоянием локальной ветви.
На всякий случай, в Windows (с использованием командной строки Windows, а не Bash) на самом деле четыре ^^^^
вместо одного, так что это
git reset --hard HEAD^^^^