2016-08-17 6 views
1
Scenario: 
Bitbucket: 
    file1 
    file2 
    file3 

Local: 
    file1 - person1 is working on it 
    file2 - person2 is working on it 
    file3 - common with personal hardcoded configuration 
    untracked files 

человек1 обязуется и подталкивает свои изменения к файлу1. Как person2 может обновлять файл1 в своем локальном файле без сброса файлов2, file3 и файлов без следа? Это время, когда я пытаюсь это сделать, но я все еще не нахожу простой способ! Спасибо.Git обновление локальное игнорирование нескольких файлов (не .gitignore)

+0

Когда вы нажимаете новое изменение на сервер, просто нажимаете файл1 вместо целой группы файлов. Как вы нажимаете файлы на git? – gurmandeep

ответ

1

Исключенные файлы не будут обновляться при получении новых коммитов из удаленного репозитория. Что касается file2 и file3 (который я принимаю , были зарегистрированы следующие данные:), вы должны установить флаг skip-worktree. Таким образом, Git не будет обновлять их в вашем рабочем каталоге.

От documentation:

- [нет-] пропуск worktree
Когда один из этих флагов указано, имя объекта записывается для путей не обновляется.

Больше specifically:

При чтении записи, если он помечен как пропуском worktree, то Git притворяется его рабочий каталог версия находится в актуальном состоянии и читать версию индекса вместо.

Вы можете установить skip-worktree флаг на конкретный файл с помощью команды :

git update-index --skip-worktree path/to/file2 

Если позже вы хотите сбросить флаг, используйте --no-skip-worktree вариант вместо:

git update-index --no-skip-worktree path/to/file2 
+1

Спасибо, я нашел эту полезную команду для перечисления всех пропущенных файлов «git ls-files -v. | Grep^S». – faber

+0

Другое, что вы используете после этого? выборка и сброс? – faber

+0

Вы имеете в виду после того, как вы отменили флаг 'skip-worktree'? –