Git push Refspecs: `refs/глав /*: ссылки / заголовки /origin` против` refs / заголовки /*: ссылки / заголовки /*`

Какой толчок Refspec (Git) правильный? Или оба верны? В чем разница?

  1. refs/heads/*:refs/heads/origin/*
  2. refs/heads/*:refs/heads/*

Я предпочитаю (1), потому что он ссылается на удаленное имя (происхождение), и я не понимаю, что означает (2) (но я вижу, что оно используется в некоторых руководствах!).

1 ответ

Решение

С участием refs/heads/*:refs/heads/origin/*, git push origin master будет расширен до git push origin refs/heads/master:refs/heads/origin/master, Это создаст или обновит ветку с именем origin/master в удаленном репозитории. Это действительно, но refs/heads/origin/master было бы неоднозначно с refs/remotes/origin/master, В некоторых ситуациях это может привести к ошибкам.

2 действует. С участием remote.origin.push=refs/heads/*:refs/heads/*, git push расширен до git push origin refs/heads/master:refs/heads/master refs/heads/dev:refs/heads/dev, а также git push origin master в git push origin refs/heads/master:refs/heads/master,

Другие вопросы по тегам