2015-02-16 3 views
4

Я хочу зафиксировать и нажать два новых файла, которые находятся внутри папки, указанной в файле .gitignore проекта. Я полагаю, что могу просто изменить файл .gitignore, но тогда мне потребуются две коммиты: одна фиксация для двух новых файлов и вторая фиксация для сброса .gitignore. Я хотел бы сделать это в одном коммите, если это возможно.Git - Зафиксировать файл в .gitignore

Есть ли способ совершить & нажать конкретный файл, который игнорируется?

+0

Вы можете просто не предание '.gitignore', поэтому он никогда не получает толкнули :) –

ответ

16

Вы не должны модифицировать .gitignore: вы можете заставить добавление этих файлов:

git add --force -- file1 file2 
git commit -m "add previously ignored files" 
git push 

От git add man page:

-f 
--force 

Разрешить добавление в противном случае игнорируемые файлы. не

Jakub Narębski Как комментарии, эти файлы больше не игнорируются, даже если они будут по-прежнему будет отобран .gitignore директив.


Tom Hart спрашивает in the comments:

Просто интересно, если есть в любом случае повторно игнорировать файлы после использования --force?

Вы должны записать их удаление из индекса, для того, чтобы эти файлы будут игнорироваться снова в рабочем дереве:

git rm --cached file1 file2 
git commit -m "Remove files which should be ignored" 
git push 

В .gitignore правила будут работать, как только файлы будут удалены из индекс (до фиксации и нажатия шагов).
Pushing означает, что на других участников будет влиять операция.

Если вы просто хотите, чтобы игнорировать эти файлы локально и временно, использование:

git update-index --assume-unchanged -- file1 file2 

(как я подробно ранее сегодня в "GIT Ignore already committed files using exclude for local changes")

Как Zeeker добавляет in the comments:

Atm git не предоставляет механизм для игнорирования всех изменений в файле, зафиксированном в каждом клоне е.

Итак:

  • git rm --cache удалит файл (сохраняя при этом свою предыдущую историю): file1 file2 или больше не будет видно, и будет игнорировать.
  • git update-index --assume-unchanged -- file1 file2не удалите файлы, но не обнаружите местных модификаций.
+1

Обратите внимание, что не отслеживаются файлы больше не игнорируется , –

+0

@ JakubNarębski True. Я включил ваш комментарий в ответ для большей наглядности. – VonC

+2

Просто интересно, если все-таки проигнорировать файлы после использования '--force'? –

1
git add -f /path/to/file 

заставит добавить файл, даже если он находится в директории игнорировала

Смежные вопросы