У меня есть следующая недавняя история в моем git repo.Git перематывать ветвь мастера на конкретную фиксацию в истории мастера
* 7661a06 (HEAD, origin/devConsolidate, devConsolidate) Fix seg fault; OCBA intermediary compares by value() now also
| * 0bbe038 (origin/master, master) Flawed work no seedShift
|/
* 62fe9db Turn on OCBA_DEBUG; nan/inf values in OCBA prior to crash
* 71298c8 Turn on OCBA (non-intermediary); seg fault occurs
* 3693904 No OpenMP, no OCBA; no memory leaks on valgrind
* 9d5686c Disable OpenMP threads
* 80bbc3b Debug (-O0) build now throws exception also
* e148013 Post convert simulation4_NEJMdisutilities [] to at()
* 66cfba9 Post convert OCBA [] to at()
* 32db3be Pre convert OCBA [] to at()
* 4a9f25b Prep for debugging
* 907e88b Found error (vector out of bounds); need to fix from here
* ca6c639 Implement elapsed, iteration, and max time in OCBA
* db68c15 Fix SEG FAULT; OCBA now working (with intermediary)
* f1c6f05 GA now uses OCBA; GA/OCBA params from config file; produces SEG FAULT
| * 3b16dcf (origin/genCRNgraph, genCRNgraph) Generate QALYs test and control independent-sampling
|/
* 001eff2 Merge branch 'OCBAdev'
Все коммиты после (потомков) f1c6f05
было сделано для отладки проблемы. Оглядываясь назад, я должен был создать отдельный ветвь для этой отладки, но я сделал все это в master
. Теперь, в фиксации 7661a06
, я исправил ошибку.
Я хочу переместить (перемотать?) Ветку (или указатель) master
так, чтобы она была расположена при фиксации f1c6f05
. После этого я могу создать патч от разницы между коммитами 7661a06
и 62fe9db
и применить его к f1c6f05
. В результате, часть моего журнала мерзавца должен выглядеть следующим образом:
* 7661a06 (origin/devConsolidate, devConsolidate) Fix seg fault; OCBA intermediary compares by value() now also
| * 0bbe038 Flawed work no seedShift
|/
* 62fe9db Turn on OCBA_DEBUG; nan/inf values in OCBA prior to crash
.
.
.
* db68c15 Fix SEG FAULT; OCBA now working (with intermediary)
| * <HASH> (HEAD, origin/master, master) Fix problem and rewind master
|/
* f1c6f05 GA now uses OCBA; GA/OCBA params from config file; produces SEG FAULT
| * 3b16dcf (origin/genCRNgraph, genCRNgraph) Generate QALYs test and control independent-sampling
|/
* 001eff2 Merge branch 'OCBAdev'
Какие команды будут использовать для достижения всего этого? В частности, как бы я: (1) переместить мастер, (2) создать патч и (3) применить патч?
О, я забыл упомянуть, что это частное репо. Других разработчиков нет. – synaptik
Итак, в этом случае 'origin' является либо« резервным »репо, либо просто другой копией репо на другой системе (возможно, настольный компьютер или ноутбук)? В любом случае, проблема с использованием 'git reset' и' git push -f' должна быть довольно минимальной. Тем не менее, вы можете столкнуться с дополнительным ударом на дороге, если «origin» не является голой репо - вам может потребоваться убедиться, что «master» * не * проверен там до нажатия. – twalberg
'origin' - это просто резервная копия, которую я храню на частном репозитории github. – synaptik