подмодуль git - игнорирование изменений - PullRequest
0 голосов
/ 03 октября 2018

Я делаю это все время:

git add .
git add -A
git commit -am "foobar"

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

Что у меня естьделает, использует несколько из этих команд, чтобы «избавиться от изменений в директории config»:

git reset -- config
git checkout -- config
git checkout origin/dev config
git reset HEAD config

Может кто-нибудь объяснить, что они делают?Я даже не уверен, что последняя команда делает то, что, как я думаю, делает.

1 Ответ

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

Во-первых, вам не нужно повторять git add.и git добавить -A.Они оба добавляют все, если вы находитесь в корневой папке вашего репо.

Во-вторых, используйте вместо этого git add -p: вы сможете игнорировать изменения в папке коммита субмодуля таким образом ( начиная с Git 2.17).И вы добавите только то, что вам нужно для следующего коммита, делая меньшие, более детальные коммиты.

Но если вы добавите добавленный конфиг и еще не зафиксировали, то:

  • git reset config отключит (удалит из индекса) запись подмодуля конфигурации
  • git checkout origin/dev -- config будет гарантировать, что SHA1 этой конфигурации - это то, что было выбрано из источника (ветка dev), а не любые локальные изменения, которые вывозможно, сделали.

Вам не нужны другие команды.Я бы добавил git submodule update --checkout, чтобы убедиться, что содержимое подмодуля извлечено справа SHA1.

...