Оказывается, я работал над веткой A, в то время как другой человек из другой команды сделал 2 коммита в одну и ту же ветку и запушил, теперь из моей команды это не позволит мне запушить мои изменения без предварительного извлечения и внесения этих 2 коммитов, например Могу ли я отменить или удалить их или передать мой локальный контент в другую ветку, чтобы, наконец, отправить и интегрировать?
Предполагая, что общий предок между вашей локальной версией ветки A и их веткой — это коммит с sha
#asdfgh
Если ваш коллега хочет сохранить свои тестовые коммиты, он может переместить их в другую ветку (то же самое вы можете переместить в копию ветки A, если хотите пойти по этому пути):
Затем вы можете нажать, заставив HEAD пульта быть общим предком
После этого можно снова вернуть тот пульт, который был чистым, и без проблем пушить:
Это может быть короче, чем ты сделал сам с этого момента
И с этим шагом на то, что находится в удалении, с тем, что у вас есть в вашем локальном, таким образом, оставляя ошибочные коммиты истории. Но этот путь оставляет открытым край, из-за которого ваш коллега не сможет работать в этой ветке, пока у него все еще есть грязные коммиты.
если вам нужно отправить ваши изменения обратно в ту же ветку A, удалив эти два коммита из удаленного репозитория, сначала разделите ваш локальный HEAD на ветке A с вашими текущими коммитами в резервную копию:
теперь ветка A должна обновляться в HEAD происхождения, для этого вы должны вернуться к общему коммиту, откуда начинаются коммиты другого человека и ваши, если вы делаете журнал git, он должен быть отмечен, где у вас в настоящее время есть ваше происхождение, так как вы не сделал тянуть, скажем, это "abc123"
теперь вы должны очистить удаленное репо
интегрировать ваши изменения
и, наконец, снова обновите репо с вашими изменениями