git: отключить автоматическую отправку в определенную удаленную ветку

#git #git-push #git-remote

#git #git-push #git-remote

Вопрос:

Когда я запускаю, git push моя локальная ветка some_branch отправляется в удаленную ветку some_remotesome_branch .

Когда я запускаю git remote show some_remote , я получаю:

 Local refs configured for 'git push':
[cut]
some_branch         pushes to some_branch
  

Я этого не хочу. Как мне удалить эту запись?

Ответ №1:

Возможно, самый простой ответ — переименовать вашу локальную ветку some_branch на другое имя, например, с помощью:

 git branch -m some_branch a_branch_name_not_present_on_some_remote
  

Причина этого в том, что git push по умолчанию каждая ветка перенаправляется в ветку с соответствующим именем на удаленном компьютере, если такая ветка там существует. Если вам не нравится такое поведение в целом, вам нужно изменить параметр конфигурации push.default.default по умолчанию. Например, вы могли бы сделать:

 git config --global push.default tracking
git branch --set-upstream some_branch origin/totally_different_branch
  

Я здесь немного подробнее написал о поведении, git push когда вы явно не указываете спецификацию refspec.

Комментарии:

1. Спасибо 🙂 Я пошел с конфигурацией.

Ответ №2:

Простой способ — отредактируйте это из вашего файла .git / config.

Комментарии:

1. Но есть ли способ извлекать данные из удаленной ветки, но не нажимать на нее?

2. @mathick — да, не используя push-pull / вытягивание. Запустите, git remote update который удалит все удаленные изменения, а затем вы получите run git merge origin/<branchname> вручную, чтобы получить текущие изменения из <branchname>

3. Но как вы отправляете изменения на удаленный сервер? Может быть, вы имеете в виду модель «только для извлечения»?

4. @mathtick Вы спросили, как извлекать, но не нажимать, так почему вы сейчас спрашиваете, как нажимать?

5. Я думаю, я не совсем понял: как асимметрично нажимать / тянуть между ветвями (т. Е. иметь некоторые ветви как «только для извлечения» в определенном репозитории). Я, вероятно, неправильно использую git, задавая эти вопросы в любом случае 🙂