Не удалось удалить удаленную ветку в git [duplicate]

Основываясь на том, что я прочитал выше, я получил простое решение, которое работает в любом браузере:

1) на странице выхода из системы вы вызываете ajax на свой логин. Ваш конец входа в систему должен принять пользователя для выхода из системы. После того, как задняя часть будет принята, браузер очистит текущего пользователя и примет пользователя «logout».

$.ajax({
    async: false,
    url: 'http://your_login_backend',
    type: 'GET',
    username: 'logout'
});      

setTimeout(function () {
    window.location.href = 'http://normal_index';
}, 200);

2) Теперь, когда пользователь вернется в обычный индексный файл, он попытается автоматически ввести система с пользователем «logout», во второй раз вы должны заблокировать ее с помощью ответа 401, чтобы вызвать диалог входа / пароля.

3) Есть много способов сделать это, я создал два входа back end, тот, который принимает пользователя выхода из системы, и тот, который этого не делает. Моя обычная страница входа использует тот, который не принимает, моя страница выхода из системы использует тот, который ее принимает.

60
задан Community 23 May 2017 в 11:55
поделиться

3 ответа

Возможно, вам нужно сначала обрезать локальный «кеш» удаленных филиалов. Попробуйте запустить:

git fetch -p origin

перед удалением.

139
ответ дан Igor 19 August 2018 в 01:43
поделиться
  • 1
    Это решило это для меня, спасибо! Однако почему он не обновляется, когда я выбираю без --prune? По-моему, это довольно вводит в заблуждение – dave0688 27 March 2018 в 14:06
  • 2
    Просто примечание для людей, прибывающих сюда из поиска, - хотя это явно полезно для большинства, кто приземляется здесь, на самом деле это не совсем правильно с точки зрения первоначальной проблемы - проблема OP заключалась в том, что его команда неправильно включала origin/ в именах ветвей , как описано / разрешено в других ответах. – CupawnTae 11 April 2018 в 09:58

Используйте sed, чтобы удалить часть «origin /» и немного изменить часть xargs.

git branch -r --merged | grep origin | grep -v -e master | sed s/origin\\/// |  xargs -I{} git push origin --delete {}
8
ответ дан kost 19 August 2018 в 01:43
поделиться

Удалены ли эти ветви с удаленного (источника)? Если да, вы можете просто сделать

git fetch --prune origin

В противном случае они могут вернуться даже после их локального удаления.

Обновление: снова посмотрев на вашу команду, похоже, что вы неправильно ее создаете. Вероятно, вы хотите

git push origin --delete myBranch-1234

, но вместо этого вы делаете что-то вроде

git push origin --delete origin/myBranch-1234
57
ответ дан Matthew Read 19 August 2018 в 01:43
поделиться
  • 1
    обновлено с потенциальной проблемой вашей команды – Mykola Gurov 21 August 2015 в 20:02
  • 2
    да, потому что во втором случае вы выполняете разные команды. – Mykola Gurov 21 August 2015 в 20:12
  • 3
    Я не понимаю вашего мнения. Я знаю, что я использую две разные команды. Во втором случае все объединенные пульты с git branch -r --merged, а затем я пытаюсь удалить их с помощью xargs git push origin --delete. Команда пытается удалить пульты, за исключением того, что она считает remote ref does not exist. – Jqw 21 August 2015 в 20:23
  • 4
    в вашей второй, запрограммированной команде, поставьте эхо рядом с xargs, чтобы увидеть, что на самом деле выполняется. – Mykola Gurov 21 August 2015 в 20:25
  • 5
    – Matthew Read 23 August 2016 в 19:15
Другие вопросы по тегам:

Похожие вопросы: