Многие люди советуют вам использовать git update-index --assume-unchanged . Действительно, это может быть хорошим решением, но только в краткосрочной перспективе.
Что вы, вероятно, хотите сделать, это: git update-index --skip-worktree .
(Третий вариант, который вам, вероятно, не нужен: git rm --cached он сохранит ваш локальный файл, но будет помечен как удаленный из удаленного хранилища.)
Разница между первыми двумя вариантами?
assume-unchangedЭто временно позволяет скрыть изменения из файла. Если вы хотите скрыть изменения, внесенные в файл, изменить файл, а затем оформить заказ в другой ветке, вам придется использовать, no-assume-unchangedвероятно, сохраненные изменения.
skip-worktree будет следовать за вами независимо от того, какую ветку вы заказываете, с вашими модификациями!
Случай использования assume-unchanged
Предполагается, что этот файл не должен быть изменен, и дает более чистый вывод при выполнении git status. Но когда вы переходите в другую ветку, вам необходимо сбросить флаг и зафиксировать или сохранить изменения перед этим. Если вы активируете эту опцию, вам нужно будет разрешать конфликты, а git не будет автоматически объединяться. На самом деле скрывает только модификации (git status не будет отображать помеченные файлы).
Мне нравится использовать его, когда я хочу только на некоторое время остановить отслеживание изменений + зафиксировать кучу файлов ( git commit -a), связанных с той же модификацией.
Случай использования skip-worktree
У вас есть класс настройки, содержащий параметры (например, включая пароли), которые ваши друзья должны изменить в соответствии с их настройкой.
- 1. Создайте первую версию этого класса, заполните поля, которые вы можете заполнить, и оставьте другие поля пустыми / пустыми.
- 2: зафиксируйте и отправьте его на удаленный сервер.
- 3:
git update-index --skip-worktree MySetupClass.java
- 4: Обновите свой класс конфигурации с вашими собственными параметрами.
- 5: вернитесь к работе над другой функциональностью.
Изменения, которые вы делаете, будут следовать за вами независимо от ветки. Предупреждение: если ваши друзья также хотят изменить этот класс, они должны иметь ту же настройку, иначе их изменения будут перенесены в удаленный репозиторий. При вытягивании удаленная версия файла должна перезаписать вашу.
PS: делайте одно или другое, но не оба, так как у вас будут нежелательные побочные эффекты. Если вы хотите попробовать другой флаг, вы должны сначала отключить его.
.csprojфайле, который является очень важной частью любого проекта. Изменения в.csproj.userфайле или любых.Publish.XMLфайлах, которые я полностью понимаю, не отслеживание, но я заинтригован тем, почему вы не хотите отслеживать.csproj…