2010-05-05 2 views
12

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

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

+0

Возможный дубликат [Как сделать «статус» GIT поэтому не отображается неотслеживаемые файлов без использования .gitignore?] (Http://stackoverflow.com/questions/594757/how-do- i-do-a-git-status-so-it-doesnt-display-untracked-files-without-use) –

ответ

12

На странице 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. 
+0

Спасибо, что работает. – chiggsy

+0

Великая вещь о git - они действительно пытаются сохранить параметры командной строки в согласии между командами с аналогичной функциональностью. –

+0

Знаете ли вы, есть ли способ изменить настройку на постоянной основе, но независимо для команд 'status' и' commit'? Я хочу видеть их с 'status', но не для' commit', но 'git-config (1)' показывает только параметр 'status.showUntrackedFiles', который воздействует на обе команды. –

28

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

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

$ git config --global status.showUntrackedFiles no 
+0

Хм, это интересная вещь, которую нужно знать. Спасибо – chiggsy

+4

, если вы хотите игнорировать не проверенные файлы в текущем репо, а не глобально использовать: 'git config --local status.showUntrackedFiles no' – yaitloutou

+0

@yaitloutou, ваше расширение должно быть добавлено в ответ. – oliversm

5

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

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

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

bar.foo 
*.bak 

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

3

Добавить имена файлов - или шаблоны (дикие карты) для имен файлов - в файл .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

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

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

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

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

    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 рекомендуется на странице "Ignoring files" on GitHub Help.

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