Многие люди советуют вам использовать 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
…