Получите git, чтобы не показывать неотслеживаемые файлы - PullRequest
20 голосов
/ 05 мая 2010

При выполнении git commit есть ли способ не отображать неотслеживаемые файлы в моем редакторе (определено в $EDITOR)? Я знаю, как это сделать в оболочке (git status -uno), но я бы хотел сделать это и в редакторе.

Обратите внимание, что я не хочу игнорировать эти файлы навсегда; Я просто не хочу их видеть в определенных случаях.

Ответы [ 6 ]

40 голосов
/ 05 мая 2010

Если вы не никогда не хотите зафиксировать их в своем репо, используйте файл .gitignore, чтобы игнорировать их.Более подробную информацию можно найти на справочной странице gitignore .Они не будут отображаться как неотслеживаемые файлы при вводе сообщения коммита в $EDITOR.

Если вы просто не хотите видеть их при фиксации, установите переменную конфигурации Git status.showUntrackedFiles в no, как отмечено здесь :

$ git config --global status.showUntrackedFiles no
16 голосов
/ 05 мая 2010

Из справочной страницы git-commit :

       -u[], --untracked-files[=]
           Show untracked files (Default: all).

           The mode parameter is optional, and is used to specify the handling of untracked
           files. The possible options are:

           ·   no - Show no untracked files

           ·   normal - Shows untracked files and directories

           ·   all - Also shows individual files in untracked directories.

               See git-config(1) for configuration variable used to change the default for
               when the option is not specified.
5 голосов
/ 05 мая 2010

Вы можете временно использовать опцию git commit -uno для маскировки неотслеживаемых файлов (git help commit).

Если вы хотите постоянное решение, используйте файл .gitignore.

Например, если вы хотите игнорировать файл bar.foo и любой файл с расширением .bak, вам просто необходимо создать файл .gitignore в корневом каталоге вашего проекта, содержащий:

bar.foo
*.bak

Некоторые файлы игнорируются глобальным gitignore файлом (например, файл точек и каталог игнорируются).

3 голосов
/ 05 мая 2010

Добавьте имена файлов - или шаблоны (подстановочные знаки) для имен файлов - в файл .gitignore и добавьте это в репозиторий:

git add .gitignore
git commit -m 'Added .gitignore file'

Например, для моего репозитория Go у меня есть файл .gitignore, содержащий:

*.o
*.a
*.so
*.pl
*.6
*.out
_obj/
_cgo_defun.c
_cgo_export.c
_cgo_export.h
_cgo_gotypes.go
*.cgo1.go
*.cgo2.c
example/example
ifix1/esqlc-cmds.c

Возможно, мне следует сжать имена '_cgo_' с помощью подстановочного знака; другой файл .c генерируется из файла .ec, поэтому его не нужно отслеживать.

1 голос
/ 27 октября 2016

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

В этих случаях используйте одно из следующих решений:

  1. Если файл является измененным файлом репо

    Используйте команду:

    git update-index --assume-unchanged "$FILE"

    Чтобы отменить это, используйте команду:

    git update-index --no-assume-unchanged "$FILE"

    Команда update-index не работает с новыми файлами, которые еще не добавлены в репозиторий.

  2. Если файл новый и не добавлен в репо

    Добавить свое имя файла в файл репо exclude:

    echo "$FILE" >> .git/info/exclude

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

    ex -s -c"g/^${FILE}\$/d" -cwq .git/info/exclude

    Обратите внимание, что это перезаписывает существующий файл exclude, и если указанное имя файла содержит специальные символы, которые могут повлиять на регулярное выражение, результаты непредсказуемы.

    Такое использование файла exclude рекомендуется на странице "Игнорирование файлов" в справке GitHub .

0 голосов
/ 30 апреля 2018

Если вы используете инструмент git-extensions на вкладке фиксации просто выберите файлы, которые вы хотите игнорировать, щелкните правой кнопкой мыши и добавьте их в .gitignore

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