Отменить git update-index --skip-worktree

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

git update-index --skip-worktree <file>

Теперь я действительно хочу зафиксировать изменения в этом файле для источника. Как отключить эффекты skip-worktree?

Спасибо, Кевин

+107
21 июн. '12 в 3:40
источник поделиться
6 ответов

Ага! Я просто хочу:

git update-index --no-skip-worktree <file>
+139
21 июн. '12 в 3:43
источник

Согласно http://www.kernel.org/pub/software/scm/git/docs/git-update-index.html, используйте

git ls-files -v

чтобы увидеть файлы "предполагать без изменений" и "skip-worktree", отмеченные специальной буквой. Файлы "skip-worktree" помечены S.

Изменить. Как упоминалось @amacleod, создание псевдонима для перечисления всех скрытых файлов - хороший трюк, чтобы вы могли Не нужно это помнить. Я использую alias hidden="git ls-files -v | grep '^S'" в моем .bash_profile. Он отлично работает!

+30
26 нояб. '12 в 15:59
источник

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

git ls-files -v | grep -i ^S | cut -c 3- | tr '\012' '\000' | xargs -0 git update-index --no-skip-worktree
  • git ls-files -v распечатает все файлы с их статусом
  • grep -i ^S будет фильтровать файлы и выбирать только пропускать worktree (S) или пропускать рабочую строку и принимать без изменений (-ых), -i означает игнорировать регистр в случае
  • cut -c 3- удалит статус и оставит только пути, вырезая из 3-го символа в конец
  • tr '\012' '\000' заменит символ конца строки (\ 012) на нулевой символ (\ 000)
  • xargs -0 git update-index --no-skip-worktree будет передавать все пути, разделенные нулевым символом, на git update-index --no-skip-worktree, чтобы отменить
+14
31 дек. '15 в 22:02
источник

Основываясь на ответе @GuidC0DE, вот версия для Powershell (я использую posh-git)

git update-index --no-skip-worktree $(git ls-files -v | sls -pattern "^S"| %{$_.Line.Substring(2)})

И для справки также противоположная команда, чтобы скрыть файлы:

git update-index --skip-worktree $(git ls-files --modified)
+2
10 июл. '17 в 9:19
источник

Для тех, кто использует Toritise Git:

  1. Щелкните правой кнопкой мыши папку или конкретный файл, затем выберите TortoiseGit > Check for modifications
  2. Только галочка Show ignore local changes flagged files. Вы должны увидеть файл, который вы проигнорировали (или все файлы, которые вы проигнорировали, если вы щелкнули правой кнопкой мыши по папке)
  3. Щелкните правой кнопкой мыши по файлу и выберите Unflag as skip-worktree and assume-unchanged
0
25 янв. '19 в 0:50
источник

Для тех, кто использует Tortoise Git, щелкните правой кнопкой мыши на папке и выберите TortoiseGit > Check for modifications, затем установите флажок Show ignore local changes flagged files.

Если вы хотите прекратить игнорировать файл, щелкните правой кнопкой мыши по нему и выберите Unflag as skip-worktree and assume-unchanged.

0
23 янв. '19 в 5:59
источник

Посмотрите другие вопросы по меткам или Задайте вопрос