Как предотвратить обнаружение игнорируемого файла в одной ветви в другой ветви в git? - PullRequest
0 голосов
/ 25 июня 2018

Допустим, у меня есть две ветки в моем хранилище Git.

  1. master

  2. slave

Теперь, находясь в master, я создал файл (содержащий некоторую конфиденциальную информацию) с именем apikey.env.Я добавил его в файл .gitignore, так как не хочу его фиксировать.После этого я зафиксировал .gitignore с новой записью.

Теперь, когда я извлекаю ветку slave, я все еще нахожу там файл apikey.env, о котором, git говорит, что это неотслеживаемые .Если я удаляю файл, меня также удаляют из ветки master.

Итак, я хочу, чтобы файл apikey.env появлялся только в ветке master, но не в slaveветвь, и я не хочу фиксировать файл даже в master ветке.Каков наилучший способ достичь этого?

Ответы [ 2 ]

0 голосов
/ 26 июня 2018

Простой способ добиться этого - добавить его в файл игнорирования, который находится за пределами вашего контроля версий и поэтому не изменится при переключении веток.Недостатком этого является то, что вы должны реплицировать этот не версионный файл игнорирования для каждого рабочего каталога / члена команды, который получает этот репозиторий.

Если это только для этого рабочего каталога, вы можете добавить к .git/info/exclude (тот же формат, что и .gitignore).

Если вы хотите, чтобы он влиял на все рабочие области на вашем локальном компьютере, вы можете добавить его к .gitignore в вашем домашнем каталоге и сказать git, что использовать это.

git config --global core.excludesfile ~/.gitignore

Это приведет к тому, что файл будет игнорироваться всеми репозиториями git на вашем локальном компьютере.

0 голосов
/ 25 июня 2018

Нет ни одного лучшего пути.Простой способ, который работает, однако, состоит в том, чтобы добавить это имя пути к .gitignore в другой ветке и также зафиксировать этот файл .gitignore.

Хотя в вашем заявлении о проблеме есть неверное предположение:

Если я удаляю файл [apikey.env], он также удаляется из главной ветви.

Файл не должен быть в(любой коммит) master вообще, и учитывая то, как вы формулировали текст до этого, звучит так, будто не в них .Таким образом, этот файл, пока он находится в вашем рабочем дереве , не находится ни в одной ветви! (Это выражение не очень точное, поскольку мы неправильно определили ветвь слова . См. Что именно мы подразумеваем под "ветвью"? , чтобы узнать больше об этом.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...