Что добавит git, если я добавлю этот каталог? - PullRequest
0 голосов
/ 18 января 2020

Ситуация, которая возникла несколько раз сейчас:

У меня есть каталог, полный файлов, foo/, еще не добавленных в систему управления версиями. git status согласен, что это так. Я собираюсь набрать git add foo, но подождите, там есть несколько двоичных файлов, которые не должны быть добавлены в систему контроля версий. Надеюсь, они успешно стали .gitignore d, но я не уверен, и я не хочу это выяснять по факту, потому что это неприятно, когда приходится вычеркивать вещи из контроля версий после их добавления.

Есть ли способ спросить у git 'если бы я сказал вам добавить foo/, какие конкретно c файлы в нем вы бы добавили?'

Ответы [ 4 ]

2 голосов
/ 18 января 2020

Для этого перед добавлением файлов:

git status -uall

или, если вам нравится более подробное написание:

git status --untracked-files=all

В этом списке будут перечислены все файлы что Git видит как неотслеживаемое, за исключением любых файлов, которые не отслеживаются, но подавляются с помощью .gitignore. Добавьте любые пропущенные имена или шаблоны в соответствующие .gitignore (сначала создайте foo/.gitignore, если необходимо / необходимо).


После добавления добавьте файлы, если есть такие, которые теперь отслеживаются, что не должно быть, они будут отображаться как новые файлы в git status. Используйте git rm --cached для каждого такого файла, 1 и добавьте соответствующее имя или шаблон имени файла к соответствующему .gitignore, чтобы будущее git add foo могло поступить правильно.


1 Вы также можете использовать git reset для каждого такого файла, как в ответ Низара .

1 голос
/ 18 января 2020

еще один вариант - использовать git add --interactive для пошагового добавления каждого файла

. Это приведет вас к подсказке, в которой вас попросят добавить каждый из указанных вами файлов

* 1005. *
1 голос
/ 18 января 2020

Так как они у вас есть в .gitignore, вам не о чем беспокоиться.

Вы можете go вперед и сделать следующее

git add foo
git status

В этом списке перечислены все файлы, которые были добавлены. Вы можете grep их, если хотите. Если вы видите там файл, который вам не нужен, вы можете просто unstage их сделать, выполнив следующие действия:

git reset foo/*
0 голосов
/ 18 января 2020

Если git показывает foo/ как неотслеживаемую папку, он добавит все это к подготовке.

Это зависит от проекта .gitignore, что будет добавлено при подготовке.

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