Сбой git сброса --soft origin / master, если вы используете git merge origin / master? - PullRequest
1 голос
/ 06 февраля 2020

Когда я отправляю PR на работе, иногда гораздо чище (это все тщеславие) иметь 1 коммит вместо 30. Поэтому обычно я могу сделать это:

git add . && git merge origin/master
git commit -am "abc"
# make more changes
git add . && git commit -am "abc"
git merge origin/master

и затем объединить все 1 коммит, я мог бы попробовать:

git reset --soft origin/dev

проблема в том, что у меня возникает ощущение, что это не сбрасывается достаточно далеко в истории. Из-за моего слияния совершается. Возможно, единственный способ сделать это правильно - это сделать:

sha="$(git merge-base --fork-point HEAD origin/master)"
git reset --soft "$sha"

, но у меня возникает ощущение, что команда merge-base вернет только go как самый последний коммит слияния между origin / master и my филиал?

1 Ответ

1 голос
/ 06 февраля 2020
git reset

сбрасывает текущий заголовок в заданное состояние.

git reset --soft <commit>

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

Вы можете просматривать хэши с помощью

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