"простой "против" текущего " толчка.по умолчанию в git для децентрализованного рабочего процесса
функционально говоря, в децентрализованном рабочем процессе я не вижу разницы между simple
и current
варианты push.default
конфигурации.
current
переместит текущую ветвь в ветвь с одинаковым именем на указанном удаленном устройстве. simple
будет эффективно делать то же самое, как для отслеживаемых, так и для любых неотслеживаемых пультов дистанционного управления для текущей ветви (он обеспечивает идентичные имена ветвей в обоих случаях).
может кто-нибудь объяснить какие-либо важные различия между двумя децентрализованными рабочими процессами, которые мне не хватает?
2 ответа:
разница в том, что с
simple
,git push
(без передачи refspec) произойдет сбой, если текущая ветвь не отслеживает удаленную восходящую ветвь (даже если ветвь с тем же именем существует на удаленном устройстве):$ git checkout -b foo Switched to a new branch 'foo' $ git config push.default simple $ git push fatal: The current branch foo has no upstream branch. To push the current branch and set the remote as upstream, use git push --set-upstream origin foo
С другой стороны,
current
не заботится о том, отслеживает ли текущая ветвь восходящий поток, он просто хочет нажать на любую ветвь с тем же именем:$ git config push.default current $ git push Total 0 (delta 0), reused 0 (delta 0) To /Documents/GitHub/bare * [new branch] foo-> foo
Документация
С Git документация по конфигурации:
upstream
- переместите текущую ветвь на ее восходящую ветвь...
simple
- как вверх по течению, но отказывается нажимать, если имя восходящей ветви отличается от локального...
current
- отправка текущей ветки в ветку с тем же названием.
разница в том, что
simple
толкает к своей ветви отслеживания, если она имеет то же имя, в то время какcurrent
будет нажимать на ветку с тем же именем, независимо от любой ветви отслеживания:$ git branch -vvv master 58d9fdc [origin/master: ahead 1] t1 bobo * new 37132d3 [origin/save: ahead 1] t1 bibi # <- tracking branch 'save' $ git -c push.default=current push # <- set `push.default=current` Counting objects: 3, done. Writing objects: 100% (3/3), 234 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To /home/jthill/sandbox/20/t1 * [new branch] new -> new # <- and push creates `new`