Git push Refspecs: `refs /глав / *: ссылки / заголовки / origin` против` refs / заголовки / *: ссылки / заголовки / * ` - PullRequest
1 голос
/ 12 июня 2019

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

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

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

1 Ответ

2 голосов
/ 12 июня 2019

С 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.

...