Похоже, вы пытаетесь отследить файл (например index.php), добавить его в удаленный репозиторий, а затем перестать следить за ним, сохраняя при этом файл на удаленном компьютере (т.е. оставлять index.phpнеизменным на удаленном репозитории, изменяя его локально).
Насколько я понимаю, git не может этого сделать. Вы можете либо отслеживать файл, либо нет. Если вы отслеживаете файл, он существует в удаленном репо и изменяется при фиксации изменений в нем. Если вы не отслеживаете файл, он не существует в удаленном репо.
Поскольку с помощью git невозможно сделать именно то, что вы хотите, потенциально существуют другие решения, в зависимости от конкретной ситуации. Например, почему вы не хотите index.phpизменять удаленно, когда вы меняете его локально? Есть ли в файле настройки для конкретного пользователя? В этом случае вы можете:
cp index.php index_template.php
git rm --cached index.php
Теперь отредактируйте index_template.php так, чтобы он отображался в удаленном репо. Добавьте что-нибудь в свой README, чтобы сообщить людям, использующим ваш репозиторий, что после клонирования они должны скопировать index_template.php в index.php и отредактировать его в соответствии со своими потребностями.
git add index_template.php
git add README
git commit -m 'added template index.php file'
git push
Когда кто-то клонирует ваше репо, он должен создать свое собственное index.php. Вы сделали это легко для них: просто скопировать index_template.phpв index.phpи пересмотреть его с настройками компьютера специфическими.