Git pull origin <branch>создает index.lock? - PullRequest
0 голосов
/ 05 октября 2018
Файл

index.lock создается в папке .git репозитория git.Это помогает проверить, происходит ли какая-либо операция или нет.Но когда я делаю git pull origin , файл index.lock не создается.

1 Ответ

0 голосов
/ 05 октября 2018

Непонятно почему вы спрашиваете об этом.Индекс также называется промежуточной областью или иногда кешем - это все одно и то же.В общем, вам не нужно беспокоиться о том, как он работает внутри, но Git нужно блокировать индекс всякий раз, когда ему нужно обновить индекс.Таким образом, Git создает файл index.lock в этих случаях.

git pull запускает git fetch, за которым следует вторая команда Git, обычно git merge.

git fetch, не нужнозаблокируйте индекс (всегда), потому что он никогда не обновляет индекс.

git merge выполняет одно из нескольких действий в зависимости от того, что вы просите его слить, и какие флаги вы ему даете.Команда git pull может передать --no-ff в git merge, чтобы в некоторых случаях вызвать определенную операцию, но если вы ее не используете, вы получите:

  • Ничего, если естьнечего объединять.
  • A ускоренная перемотка вперед операция, если текущий коммит строго находится за коммитом, который вы (или git pull) просите git merge слить.
  • Истинное слияние, если текущий коммит и коммит, который должен быть объединен, расходятся с каким-либо общим предком ( база слияния ).

Когда git merge ничего не делает, онне влияет на индекс, поэтому не создает файл index.lock.В двух других случаях он влияет на индекс , поэтому он создает файл index.lock.

(Обратите внимание, что git checkout также создаст файл index.lock, когда онобновляет индекс.)

Вы не можете сказать, будет ли git merge делать что-либо, пока не завершится шаг git fetch, поэтому невозможно заранее предсказать, создаст ли git pull файл index.lock.

Приведенные выше рассуждения верны и для случая, когда вы указываете git pull запускать git rebase вместо git merge.Фактические аргументы для git rebase зависят от того, что git fetch выбирает, и git rebase ничего не будет делать, если нечего делать, но будет делать вещи (и, следовательно, возможно, создавать index.lock), когда есть что делать.Что делать, во всяком случае, зависит от результата git fetch.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...