Я пытаюсь реализовать рабочий процесс, в котором я переустанавливаю свою ветку функций с мастера перед ее слиянием. Я обнаружил, что не рекомендуется отправлять мои локальные коммиты в ветке feature
в удаленное репо перед перебазированием, поскольку это по существу дублирует фиксации в ветке функций и требует последующей принудительной отправки, как описано здесь. (Я знаю Git 101.) Я определенно не хочу привыкать к --force
отправке коммитов, и, позволяя коммитам сначала накапливаться локально без отправки, затем перебазирования и затем отправки, я избегаю этого.
Тем не менее, я хотел бы, чтобы мои коммиты были отправлены куда-нибудь на удаленный сервер перед перебазированием, особенно в тех случаях, когда локальное репо находится на локальном компьютере (что может привести к сбою HD и т. д.). Есть ли способ сделать это без нажатия --force
? Я думал о создании какой-то промежуточной ветки my_work
, но похоже, что это также приведет к проблеме «локального/удаленного расхождения». Может быть, есть умный (или не очень умный) способ сделать это, о котором я просто не подумал.
feature
, предполагая, что вы единственный, кто работает над ней. - person Tim Biegeleisen   schedule 10.04.2021feature
, я вполне могу поскользнуться и принудительно нажать общедоступную ветку в какой-то момент. YMMV, но для меня лучше просто не допустить, чтобы эта привычка сформировалась в первую очередь. - person Matt Phillips   schedule 10.04.2021feature
наmaster
, чтобы поместить первую ветвь непосредственно перед последней. Силовой толчокfeature
не является неправильным, и в любом случае его невозможно избежать. - person Tim Biegeleisen   schedule 10.04.2021git push -f some-id-or-local-branch:main
. Не вы можете сделать это случайно. - person eftshift0   schedule 10.04.2021main
илиdevelop
или что-то еще в качестве ветки удаленного отслеживания - просто никогда не проверяйте это на локальном. - person matt   schedule 10.04.2021git checkout my-feature origin/master;
Через несколько дней:git pull
. - person eftshift0   schedule 10.04.2021git checkout origin/main
, чтобы она не создавалась локально. - person eftshift0   schedule 10.04.2021feature
вmaster
без локального извлеченияmaster
, не так ли? - person Matt Phillips   schedule 10.04.2021git fetch origin; git checkout origin/master; git merge feature -m "my feature"; git push origin HEAD:master
- person eftshift0   schedule 10.04.2021git checkout feature; git pull; git push origin feature:master
- person eftshift0   schedule 10.04.2021