Git: предотвращение принудительной перезаписи новых изменений в хранилище - PullRequest
1 голос
/ 11 января 2012

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

Есть ли способ сообщить Git, что разрешить принудительную отправку разрешено только в том случае, если удаленная ветвь в моем локальном хранилище совпадает с соответствующей ветвью в моем удаленном хранилище?

Обновление: пожалуйста, вообще не голосуйте против принудительного толчка.

1 Ответ

0 голосов
/ 10 февраля 2012

Вы можете либо отменить эти изменения в своих локальных ветвях и решить любые проблемы перед нажатием (которые вам, возможно, придется решить на другом компьютере при следующем извлечении), либо вы можете перейти к определенным ветвям с помощью: - нотации. git push origin [local-branch]:[remote-branch]
Что также является способом удаления удаленных веток (т. Е. git push origin :branch будет выдвигать пустую ветку к указанной удаленной ветке, удаляя ее).

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

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

...