Різниці немає взагалі!
1) git checkout -b branch origin/branch
Якщо немає --track
і немає --no-track
, --track
вважається за замовчуванням. За замовчуванням можна змінити налаштування branch.autosetupmerge
.
Насправді 1) поводиться так git checkout -b branch --track origin/branch
.
2) git checkout --track origin/branch
"Як зручність", --track
без будь-яких -b
припущень -b
і аргументів, як -b
вважається, "галузь". Відгадування керується змінною конфігурації remote.origin.fetch
.
Насправді 2) поводиться так git checkout -b branch --track origin/branch
.
Як бачите: різниці немає.
Але стає ще краще:
3) git checkout branch
також еквівалентно, git checkout -b branch --track origin/branch
якщо "гілка" ще не існує, але "походження / гілка" робить 1 .
Усі три команди встановлюють, що "вище" за "гілкою" є "початком / гілкою" (або вони не відповідають).
Вгору по течії використовується в якості опорної точки аргумент менш git status
, git push
, git merge
і , таким чином , git pull
(якщо він налаштований таким чином (який за замовчуванням або майже за замовчуванням)).
Напр., git status
Вам повідомляється, як далеко ви позаду або вперед, якщо ви налаштовані.
git push
за замовчуванням налаштовано для виштовхування поточної гілки за течією 2, оскільки git 2.0.
1 ... і якщо "походження" є єдиним віддаленим, що має "відділення"
2, за замовчуванням (названим "простим") також примушує обидві назви гілок бути рівними
git pull
, тоді як деякі гілки просять витягнутий відділення. Виявляється, якщо ви вперше перевіряєте віддалену гілку, яку створив ваш одноліток, git продовжується і додаєbranch.<BNAME>.remote=origin
до локальної gitconfig. Що потім дозволяє оформитиgit pull
. Однак, якщо ви створюєте гілкуgit checkout -b BNAME
, то git - звичайно, не знає. Тому слід вказати його пульт.