Подтвердить что ты не робот

Разница между git pull. мастер vs git мастер слияния

Не имея удаленного репозитория, только один локальный репозиторий с двумя ветвями.

$ git branch -a
  master
* devel

Являются ли следующие команды в этом контексте тем же/синонимом?

$ git pull . master

и

$ git merge master

UPDATE:

$ git help pull дает следующую информацию

SYNOPSIS
   git pull <options> <repository> <refspec>...

DESCRIPTION
   ...
   Note that you can use . (current directory) as the <repository> to pull
   from the local repository — this is useful when merging local branches
   into the current branch.

Я действительно не понимаю, почему это полезно, как указано в этой man-странице.

4b9b3361

Ответ 1

git pull . master извлекает из текущего репозитория (no-op) и затем выполняет что-то, чтобы обновить текущую ветвь с помощью master. Это может быть слияние, но это может быть также перебаза в зависимости от настройки конфигурации pull.rebase или branch.master.rebase.

В случае слияния на стратегию слияния my влияет pull.twohead.

git merge master всегда будет объединять мастер с стратегией слияния по умолчанию.

Ответ 2

pull представляет собой комбинационную команду fetch, за которой следует merge. По умолчанию или разумным параметрам он синхронизирует вашу текущую ветвь.

С параметрами, как в вопросе, большая часть его работы саботируется. часть извлечения отменена, чтобы использовать текущее репо, поэтому оно пропущено, и вы явно спрашиваете, как мастер переполняет FETCH_HEAD.

Таким образом, в этой форме я считаю, что они идентичны (и я тоже ставил бы первую категорию безнравственности).

Ответ 3

Единственное различие - во втором случае (git merge master) оно будет сливаться с не свежими данными, а с данными из вашего последнего удаленного обновления. Итак, если вы только что сделали fetch (или git remote update) - они работают одинаково, но если вы недавно обновили локальный репозиторий, он будет сливаться со старым снимком.

Не уверен, что период в git pull . master является правильным синтаксисом...