Игнорирование одного конкретного файла в git не работает, независимо от того, что я пытаюсь - PullRequest
0 голосов
/ 14 мая 2018

Поэтому я пытаюсь игнорировать файл my_settings.py в git.Если я делаю какие-либо изменения, Git фактически игнорирует их и не говорит мне, чтобы их зафиксировать.Но каждый раз, когда я меняю ветку, файл либо перезаписывается, либо git не позволяет мне сменить ветку, потому что your changes would be overwritten by checkout.Я работаю в команде разработчиков, и я остался один с этой проблемой.Файл не является частью .gitignore, потому что нужно иметь возможность извлечь его, а затем внести в него изменения, которые не будут зафиксированы.Это работает для всех в моей команде, кроме меня, и я не понимаю.Коллега снова вытащил репо, и проблема исчезла для него.Ему даже не нужно было использовать какие-либо команды, такие как git update-index.Я попробовал это, и это не сработало.Я пытался git update-index --assume-unchanged, я пытался git update-index --skip-worktree, я пытался добавить файл в info/exclude.Ничего не работаетЯ действительно понятия не имею, как это исправить.

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

Невозможно сделать именно то, что вы пытаетесь сделать - либо файл отслеживается git, либо нет, вы не можете наполовину отслеживать файл.

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

Например, если у вас есть файл конфигурации с именем config.json, который содержит секретные ключи API, вы можете зафиксировать копию без ключей API с именем config.json.example, тогда, когда каждый разработчик клонирует репозиторий, они копируют его в config.json и вставьте свои ключи API.

0 голосов
/ 14 мая 2018

Запустите команды ниже, если вы добавили новые файлы в .gitignore, которые будут игнорироваться:

  • git rm -r --cached . удалит все подготовленные изменения, поэтому убедитесь, что вы зафиксировали свои изменения
  • git add .
  • git commit -m "ignore files"
...