Разница между git push origin master и git push

В чем разница между обеими этими командами.

git push origin master и git push

Когда я использую первый (git push origin master), он каким-то образом отправляет его 2x в восходящий поток и только с git push он отправляет его 1x.

Кто-нибудь может объяснить, почему это происходит?

Ответ 1

Указывая $ git push без параметра репозитория, по умолчанию он будет перенаправлять текущую ветку в удаленную ветку отслеживания.

Когда вы указываете $ git push origin, вы явно указываете свои изменения в удаленном репозитории origin.

Что касается вашего вопроса о отправке "2x" в восходящий поток, это не должно быть поведением. Он будет каждый раз вносить изменения в репозиторий вверх.

Документация на git -push

Когда вы выполняете $ git push без параметров, Git на самом деле довольно многословно с действиями, которые он предпримет:

warning: push.default is unset; its implicit value has changed in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the traditional behavior, use:

  git config --global push.default matching

To squelch this message and adopt the new behavior now, use:

  git config --global push.default simple

When push.default is set to 'matching', git will push local branches
to the remote branches that already exist with the same name.

Since Git 2.0, Git defaults to the more conservative 'simple'
behavior, which only pushes the current branch to the corresponding
remote branch that 'git pull' uses to update the current branch.

See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)