Я объединил ветвь dev (с постоянными, иногда неустойчивыми изменениями) к нашей главной ветке (где мы храним выпущенный, стабильный код). Я хочу восстановить главную ветвь до состояния, которое было раньше, как никогда не произошло слияние с веткой dev (и что когда в будущем мы объединим ветвь dev, все изменения, которые мы отбросим, теперь будут объединены «снова»).Вернуть нажатую ветвь в конкретную фиксацию
Это текущий статус ведущей ветви, и я хочу, чтобы в HEAD был установлен «commit-1.1.2» commit/tag.
Я пробовал:
$ git revert -n professional-1.1.2..HEAD
fatal: Commit 9167e846a387c793edbc089c7ab6bd9eb8260456 is a merge but no -m option was given.
$ git revert -n -m 1 professional-1.1.2..HEAD
fatal: Mainline was specified but commit 380169097f35d07466640bc0db1b639278cd25fa is not a merge.
$ git revert -n -m 2 professional-1.1.2..HEAD
fatal: Mainline was specified but commit 380169097f35d07466640bc0db1b639278cd25fa is not a merge.
После небольшого исследования я думаю, что лучший вариант, это сделать git reset --hard professional-1.1.2
и git push --force
как ответ на Git: How to ignore fast forward and revert origin [branch] to earlier commit? или reverting push'd git commit. Другие разработчики находятся в одном офисе, и они никогда не должны совершать что-либо, чтобы справиться с ними (как и я, но ... да, у нас нет разрешений на каждую ветку), поэтому не стоит говорить им и делать какие-либо необходимое действие.
Таким образом, в конце концов, вопрос: git revert something
или git reset --hard <TAG>
& & git push --force
? Если git revert
, какую команду я должен использовать?
Ответ дается Jefromi в http://stackoverflow.com/questions/3556501/git-how -to-reset-after-merging может вам помочь. – vpatil
@vpatil, так лучше использовать 'git reset --hard', чем' git revert' в моем случае? –
Да, я так думаю, потому что revert создает новую фиксацию, которая отменяет последнее коммит. Я бы определенно предложил использовать сброс. – vpatil