Всеки път, когато изпълнявам задача, създавам местенразклонение в git, тогава трябва да променя куп конфигурационни файлове (най-вече съдържащи връзки низове към бази данни), за да настроите на моята местна среда преди действителната работа. Тези промени не искам да прокарам до хранилището по-късно, след като приключа със задачата си.
Всъщност бих предпочел да ги филтрирам, когато преглеждам променените файлове (git status
).
Бих могъл да се захвана с моя локален клон и да го върна, преди да го натисна. Но има шанс да го забравя. Има ли по-добър начин за това?
Отговори:
3 за отговор № 1Най-препоръчителното решение е да използвате:
git update-index --skip-worktree <file>
- [няма подобен] прескачане-worktree
Когато е зададен един от тези знамена, обектътимето, записано за пътеките, не се актуализира. Вместо това, тези опции задайте и деактивирайте бита "skip-worktree" за пътеките. Вижте раздел "Пропускане на работно време" по-долу за повече информация.
Пропуснете малко работа
Пропуснатата работа може да бъде определена в един (дълъг)изречение: Когато четете запис, ако той е означен като пропуск, Git се преструва, че работната му версия е актуална и вместо това прочете индекса.
За да се разработи, "четене" означава проверка за файлсъществуването, четенето на файлови атрибути или съдържанието на файла. Работната версия на директорията може да е налице или да липсва. Ако е налице, съдържанието му може да съответства на индексната версия или не. Писането не се влияе от този бит, безопасността на съдържанието е все още първи приоритет. Обърнете внимание, че Git може да обновява работния директорски файл, който е означен като skip-worktree, ако е безопасно да го направи (т.е. версията на работната директория съвпада с индексната версия)
Макар че този бит изглежда подобен на предполагаемия непроменен бит, неговата цел е различна от приетия непроменен бит. Пропускът на работния процес също има предимство пред предполагаемия непроменен бит, когато и двете са зададени.
Най- --assume-unchanged
флагът е предназначен за подобряване на производителността, като има предвид, че --skip-worktree
е предназначен за случаи, в които можете да промените файла и искате git да го пропуснете така или иначе.
За да отмените, използвайте:
git update-index --no-skip-worktree <file>
3 за отговор № 2
За да игнорирате временно промените в конкретен файл, можете да направите това:
git update-index --assume-unchanged <file>
Когато искате да проследявате промените отново, трябва да изпълните:
git update-index --no-assume-unchanged <file>