На GitHub они советуют делать git push -u origin master вместо git push.
В чем основное отличие?
На GitHub они советуют делать git push -u origin master вместо git push.
В чем основное отличие?
От 1_:
-u, --set-upstream For every branch that is up to date or successfully pushed, add upstream (tracking) reference ...
По сути, это означает, что он не только загрузит ваш master
в master
по адресу origin
, но и настроит локальную копию origin/master
в качестве отслеживающей ветки, то есть upstream вашего локального master
.
Обычно это уже так, поэтому, если это так, пребывание в master
и выполнение git push -u origin master
ничем не отличается от обычного git push
. Но если вы неправильно настроили свой репозиторий, то иногда длинная версия исправит это автоматически.
Естественно, выполнение этой команды без размышлений может привести к плохим ситуациям, например, если вы находитесь в общедоступной рабочей ветке и делаете это:
{mybranch} $ git push -u origin master
Теперь вы загрузили свой mybranch
как master
и настроили origin/master
как upstream для mybranch
вместо правильного origin/mybranch
, и вы создали настоящий беспорядок!
Я предполагаю, что GitHub рекомендует это для новичков в git, чтобы избежать звонков в их службу поддержки. Но я бы не рекомендовал это по умолчанию для нажатия. На самом деле, если вы неправильно настроите восходящий поток, простой git push
завершится ошибкой с этим сообщением:
fatal: The current branch a has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin master
который точно говорит вам, что происходит и как это исправить (--set-upstream
является синонимом -u
).