Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Программирование Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2      [все]
 Git игнорит игнор  [new]
fkthat
Member

Откуда:
Сообщений: 1614
Возможно ли как-то настройками заставить Git игнорировать изменения в файлах, которые уже были ранее закоммичены? Поясню. Если я добавляю в .gitignore строку, допустим, *.temp, то после этого, при добавлении в working tree нового файла foo.temp, он будет игнориться, но если до этого уже был файл bar.temp и он уже был ранее закоммичен, то при его (bar.temp) изменении Git все равно будет отображать его как "changed" и предложит эти изменения закоммитить. Можно ли это победить?
15 окт 19, 18:36    [21994889]     Ответить | Цитировать Сообщить модератору
 Re: Git игнорит игнор  [new]
mayton
Member

Откуда: loopback
Сообщений: 42918
Видимо файл был уже добавлен в индекс на коммит. Убери его оттуда командой

$ git reset {filename}
15 окт 19, 18:39    [21994891]     Ответить | Цитировать Сообщить модератору
 Re: Git игнорит игнор  [new]
fkthat
Member

Откуда:
Сообщений: 1614
mayton,

Нет, в том-то и дело, что этот файл должен быть в Git, я просто не хочу коммитить последующие изменения этого файла. (т.е., фактически, не делать ему git stage перед git commit, но так, чтобы это автоматически происходило и я его не видел в списке измененных файлов). Я даже опишу более конкретно - есть некоторый файл настроек аппликухи, в котором закоммичены некие "общие" настройки, мне надо там поменять настройки на локальной копии, но так чтобы они не уходили в общий репо. Я прекрасно понимаю, что я могу просто эти изменения не коммитить, типа "git add . && git reset foo.config && git commit -m blablabla", но делать это каждый раз немного дрочно, и, к тому же, всегда можно про это забыть и случайно его все-таки запушить со своими изменениями.
15 окт 19, 19:02    [21994907]     Ответить | Цитировать Сообщить модератору
 Re: Git игнорит игнор  [new]
hVostt
Member

Откуда:
Сообщений: 16165
fkthat
Возможно ли как-то настройками заставить Git игнорировать изменения в файлах, которые уже были ранее закоммичены? Поясню. Если я добавляю в .gitignore строку, допустим, *.temp, то после этого, при добавлении в working tree нового файла foo.temp, он будет игнориться, но если до этого уже был файл bar.temp и он уже был ранее закоммичен, то при его (bar.temp) изменении Git все равно будет отображать его как "changed" и предложит эти изменения закоммитить. Можно ли это победить?


зачем это побеждать? так и задумано. игнор работает как фильтр для отслеживания новых файлов, а не изменений в файлах.
15 окт 19, 22:17    [21994999]     Ответить | Цитировать Сообщить модератору
 Re: Git игнорит игнор  [new]
hVostt
Member

Откуда:
Сообщений: 16165
fkthat
Нет, в том-то и дело, что этот файл должен быть в Git, я просто не хочу коммитить последующие изменения этого файла. (т.е., фактически, не делать ему git stage перед git commit, но так, чтобы это автоматически происходило и я его не видел в списке измененных файлов). Я даже опишу более конкретно - есть некоторый файл настроек аппликухи, в котором закоммичены некие "общие" настройки, мне надо там поменять настройки на локальной копии, но так чтобы они не уходили в общий репо. Я прекрасно понимаю, что я могу просто эти изменения не коммитить, типа "git add . && git reset foo.config && git commit -m blablabla", но делать это каждый раз немного дрочно, и, к тому же, всегда можно про это забыть и случайно его все-таки запушить со своими изменениями.


решается копированием файла шаблона в файл, который заигнорен. при билде.
не нужно сюда приплетать гит, это потом порвёт все шаблоны команде, нафига такое нужно?
15 окт 19, 22:18    [21995000]     Ответить | Цитировать Сообщить модератору
 Re: Git игнорит игнор  [new]
mayton
Member

Откуда: loopback
Сообщений: 42918
hVostt
fkthat
Возможно ли как-то настройками заставить Git игнорировать изменения в файлах, которые уже были ранее закоммичены? Поясню. Если я добавляю в .gitignore строку, допустим, *.temp, то после этого, при добавлении в working tree нового файла foo.temp, он будет игнориться, но если до этого уже был файл bar.temp и он уже был ранее закоммичен, то при его (bar.temp) изменении Git все равно будет отображать его как "changed" и предложит эти изменения закоммитить. Можно ли это победить?


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

+1

Я думаю что на этом можно закрыть вопрос.
16 окт 19, 10:07    [21995191]     Ответить | Цитировать Сообщить модератору
 Re: Git игнорит игнор  [new]
fkthat
Member

Откуда:
Сообщений: 1614
hVostt
не нужно сюда приплетать гит, это потом порвёт все шаблоны команде, нафига такое нужно?

Как и что это порвет, если локальные изменения не идут в репо?
16 окт 19, 12:04    [21995328]     Ответить | Цитировать Сообщить модератору
 Re: Git игнорит игнор  [new]
fkthat
Member

Откуда:
Сообщений: 1614
hVostt
зачем это побеждать? так и задумано. игнор работает как фильтр для отслеживания новых файлов, а не изменений в файлах.

Я, блин, знаю прекрасно, для чего задуман игнор, скажем, лучше, так - я хочу "игнор++", который запретит гиту отслеживать изменнеия в определенном файле.
16 окт 19, 12:24    [21995356]     Ответить | Цитировать Сообщить модератору
 Re: Git игнорит игнор  [new]
mayton
Member

Откуда: loopback
Сообщений: 42918
fkthat
hVostt
зачем это побеждать? так и задумано. игнор работает как фильтр для отслеживания новых файлов, а не изменений в файлах.

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

А потом ты захочешь игнор--- который отменит действия твоего игнор++ и так далее.

Диалектический спор надо искать не в гите а в твоих хотелках.
16 окт 19, 12:31    [21995367]     Ответить | Цитировать Сообщить модератору
 Re: Git игнорит игнор  [new]
hVostt
Member

Откуда:
Сообщений: 16165
fkthat
hVostt
зачем это побеждать? так и задумано. игнор работает как фильтр для отслеживания новых файлов, а не изменений в файлах.

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


я уже сказал, какое решение. и оно лежит не в области системы контроля версий.

1. создаёте шаблон файла, который добавляется в систему контроля версий
2. создаёте шаг сборки, который копирует файл шаблона в нужный вам файл, если он отсутствует
3. нужный вам файл помещаете в игнор

профит. можете сколько угодно править нужный вам файл, он будет проигнорирован. а при сборке он будет создан из шаблона, который под котролем, если нужного файла нет.
16 окт 19, 13:26    [21995409]     Ответить | Цитировать Сообщить модератору
 Re: Git игнорит игнор  [new]
hVostt
Member

Откуда:
Сообщений: 16165
fkthat
hVostt
не нужно сюда приплетать гит, это потом порвёт все шаблоны команде, нафига такое нужно?

Как и что это порвет, если локальные изменения не идут в репо?


объясняю как порвёт.

1. создали файл some.txt и внесли в него изменения
2. добавили в систему контроля версий
3. добавили игнор последующих изменений в файле
4. теперь у нескольких разработчиков файл со своими изменениями
5. какой-то Вася командой git переносит изменения в файле в репо
6. у всех остальных происходит локальный п....ц, как смержить свои изменения с чужими, если никакой истории собственных изменений не велось? что делать?

ваш вопрос исходит от непонимания основных принципов работы распределённых систем контроля версий, важности истории изменений и согласованности этих изменений между всеми участниками команды.
16 окт 19, 13:29    [21995412]     Ответить | Цитировать Сообщить модератору
 Re: Git игнорит игнор  [new]
hVostt
Member

Откуда:
Сообщений: 16165
fkthat,

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

было просто: файлы либо под контролем версий, либо нет.

вы предлагаете: какую-то хрень, теперь появляются файлы недоподконтролем версий, куй его знает что вообще происходит, если таких файлов становится чуть более, чем дофига. а ведь у них тоже какая-то своя покоцанная история изменений, которая непонятно когда и почему заканчивается.
16 окт 19, 13:34    [21995421]     Ответить | Цитировать Сообщить модератору
 Re: Git игнорит игнор  [new]
mayton
Member

Откуда: loopback
Сообщений: 42918
Имеет смысл реструктуризировать ваш проекто чтобы темповые или логи или прочие мутирующие файлы
никогда не попадали в кандидаты на коммит.
16 окт 19, 13:45    [21995434]     Ответить | Цитировать Сообщить модератору
 Re: Git игнорит игнор  [new]
fkthat
Member

Откуда:
Сообщений: 1614
hVostt
ваш вопрос исходит от непонимания основных принципов работы распределённых систем контроля версий, важности истории изменений и согласованности этих изменений между всеми участниками команды.

Как всегда, один ты у нас тут такой всепонимающий

Мля, мне нах не нужна там никакая история изменеий. Давай, объясню конкретную ситуацию. Есть проект ASP.NET Core. Файл Properties/launchSettings.json в котором некоторые профили, которые все используют. Мне надо локально добавить профиль лично для себя, который буду использовать только я на своей локальной машине. И мне лень дрочиться при каждом коммите следить, чтобы мои эти изменения не ушли в общий репо. Для новых файлов я даже могу сделать локальный игнор (.git/info/exclude), но, вот, для тех что уже есть - хер. Походу, просто, такой возможности нет.
16 окт 19, 14:06    [21995465]     Ответить | Цитировать Сообщить модератору
 Re: Git игнорит игнор  [new]
mayton
Member

Откуда: loopback
Сообщений: 42918
fkthat, если ты лид или владелец ПО - то делай и закрывай вопрос.

Если это общая проблема вашей команды. Я даю 80% что за нее проголосуют на ретроспективе и применят.

P.S. Ничего нового под луной уже 2 тыщи лет. Все давно придумано.
16 окт 19, 14:12    [21995472]     Ответить | Цитировать Сообщить модератору
 Re: Git игнорит игнор  [new]
hVostt
Member

Откуда:
Сообщений: 16165
fkthat
Как всегда, один ты у нас тут такой всепонимающий


я вроде расжувал и объяснил, тут не надо семи пядей во лбу.


fkthat
Мля, мне нах не нужна там никакая история изменеий. Давай, объясню конкретную ситуацию. Есть проект ASP.NET Core. Файл Properties/launchSettings.json в котором некоторые профили, которые все используют. Мне надо локально добавить профиль лично для себя, который буду использовать только я на своей локальной машине. И мне лень дрочиться при каждом коммите следить, чтобы мои эти изменения не ушли в общий репо. Для новых файлов я даже могу сделать локальный игнор (.git/info/exclude), но, вот, для тех что уже есть - хер. Походу, просто, такой возможности нет.


ну ё-маё. может хоть раз документацию, хотя бы для приличия, почитаешь? :)

https://docs.microsoft.com/ru-ru/aspnet/core/security/app-secrets?view=aspnetcore-2.2&tabs=windows

храни свои конфиги в своих секретах за рамками репы. чего как маленький-то? )
17 окт 19, 00:40    [21995956]     Ответить | Цитировать Сообщить модератору
 Re: Git игнорит игнор  [new]
hVostt
Member

Откуда:
Сообщений: 16165
fkthat,

https://docs.microsoft.com/ru-ru/aspnet/core/fundamentals/environments?view=aspnetcore-2.2

там даже выделено


Предупреждение

В файле launchSettings.json не должны храниться секреты. Для хранения секретов во время разработки в локальной среде можно использовать средство Secret Manager.


17 окт 19, 00:44    [21995958]     Ответить | Цитировать Сообщить модератору
 Re: Git игнорит игнор  [new]
fkthat
Member

Откуда:
Сообщений: 1614
hVostt,

Египетская сила. Да при чем тут какие-то секреты? Где же это я писал, что у меня в json секреты? Ты вообще хоть вчитываешься в то, что читаешь, или пишешь просто лишь бы сумничать?
17 окт 19, 11:18    [21996266]     Ответить | Цитировать Сообщить модератору
 Re: Git игнорит игнор  [new]
fkthat
Member

Откуда:
Сообщений: 1614
Разрулил простейшим хуком на пре-коммит.
18 окт 19, 11:48    [21997271]     Ответить | Цитировать Сообщить модератору
 Re: Git игнорит игнор  [new]
hVostt
Member

Откуда:
Сообщений: 16165
fkthat
hVostt,

Египетская сила. Да при чем тут какие-то секреты? Где же это я писал, что у меня в json секреты? Ты вообще хоть вчитываешься в то, что читаешь, или пишешь просто лишь бы сумничать?


походу ты тупо не вдупляешь. либо документацию даже не читал.

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

ты похоже не просто не вчитываешься, ты даже не читаешь, что тебе пишут.
печально.

fkthat
Разрулил простейшим хуком на пре-коммит.


ну в общем, через ж. не жалуйся потом на чей-то говнокод, окэ? :)

решение, с менеджером секретов -- это прям решение для твоей задачи в лоб.
но увы и ах. видио слишком сложна.
18 окт 19, 12:55    [21997344]     Ответить | Цитировать Сообщить модератору
 Re: Git игнорит игнор  [new]
hVostt
Member

Откуда:
Сообщений: 16165
fkthat
Походу, просто, такой возможности нет.


по ходу кто-то болт клал на любые доки.
18 окт 19, 12:56    [21997346]     Ответить | Цитировать Сообщить модератору
 Re: Git игнорит игнор  [new]
fkthat
Member

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

Открой для себя волшебную переменную окружения "ASPNET_ENVIRONMENT". И открой для себя, что launchSettings.json в юзер сикретс не хранится.

ЗЫ. Тебе, как обычно, лишь бы с зеленой пеной у рта в спор кинуться, поэтому впредь каких-либо обсуждений с тобой я буду избегать.
18 окт 19, 14:25    [21997459]     Ответить | Цитировать Сообщить модератору
 Re: Git игнорит игнор  [new]
hVostt
Member

Откуда:
Сообщений: 16165
fkthat,

я смотрю ты как продолжал класть болт на доки, так и будешь продолжать.
в любом конфиге json могут храниться секреты, сам секрет настраивается в csproj, а конфигурируется его использование в Program.cs
я понимаю, что это для тебя недостижимая вышка, иначе бы ты понял, что ASPNET_ENVIRONMENT тут никаким боком к делу не относится.

с такой нежной организацией натуры и нежеланием читать доки, тебе и правда нужно избегать любых обсуждений.
18 окт 19, 15:59    [21997548]     Ответить | Цитировать Сообщить модератору
 Re: Git игнорит игнор  [new]
fkthat
Member

Откуда:
Сообщений: 1614
hVostt
я смотрю ты как продолжал класть болт на доки, так и будешь продолжать.
в любом конфиге json могут храниться секреты, сам секрет настраивается в csproj, а конфигурируется его использование в Program.cs
я понимаю, что это для тебя недостижимая вышка, иначе бы ты понял, что ASPNET_ENVIRONMENT тут никаким боком к делу не относится.

Может не будешь тогда балаболить, а покажешь, как мне сохранить launchSettings.json в user secrets? А то тут твоих сообщений половина обсуждения, а практической пользы от них полный ноль. Или у тебя знания как раз только чтением доков и ограничены? Я-то как раз на практике использовал и user secrets и azure key vault.
Модератор: Давайте без наездов друг-на-друга, добрее надо быть ... или обоих забаню


Сообщение было отредактировано: 18 окт 19, 21:01
18 окт 19, 16:10    [21997560]     Ответить | Цитировать Сообщить модератору
 Re: Git игнорит игнор  [new]
fkthat
Member

Откуда:
Сообщений: 1614
hVostt
ASPNET_ENVIRONMENT тут никаким боком к делу не относится.

ASPNET_ENVIRONMENT позволяет (в том числе) запускать приложение с различными конфигами на выбор, т.ч. очень даже боком.
18 окт 19, 16:14    [21997566]     Ответить | Цитировать Сообщить модератору
 Re: Git игнорит игнор  [new]
hVostt
Member

Откуда:
Сообщений: 16165
fkthat,

всё встанет на свои места, если ты скажешь, зачем.
какие параметры launchSettings.json ты не хочешь сохранять в репо, и почему вообще он лежит в репо?

я поделюсь своим опытом, потому что я до сих пор уверен, что ты борешься с ветряными мельницами.
хуки на launchSettings, который нужен исключительно для локальной отладки и не должен использоваться ни на стендах, ни тем более на проде -- решение откровенно фиговое.
19 окт 19, 00:58    [21997853]     Ответить | Цитировать Сообщить модератору
 Re: Git игнорит игнор  [new]
fkthat
Member

Откуда:
Сообщений: 1614
hVostt
fkthat,

всё встанет на свои места, если ты скажешь, зачем.
какие параметры launchSettings.json ты не хочешь сохранять в репо, и почему вообще он лежит в репо?

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

На стенды и на прод он и так не идет - он по умолчанию в паблишинг никогда не включается. Смысла держать его в Git особого нет, но, во-первых его уже туда положили задолго до меня, во-вторых, какой-то небольшой смысл в этом есть, т.к., сделали на новой машине "git clone" и получили некоторый "дефолтный" launchSettings, который не надо его с нуля делать. В старых версиях VS настройки запуска для отладки хранились в самом файле проекта и была даже галка выбора хранить их в "общем" *.csproj или в "личном" *.userproj", но сейчас такого нет.
19 окт 19, 11:21    [21997901]     Ответить | Цитировать Сообщить модератору
 Re: Git игнорит игнор  [new]
hVostt
Member

Откуда:
Сообщений: 16165
fkthat
На стенды и на прод он и так не идет - он по умолчанию в паблишинг никогда не включается. Смысла держать его в Git особого нет, но, во-первых его уже туда положили задолго до меня, во-вторых, какой-то небольшой смысл в этом есть, т.к., сделали на новой машине "git clone" и получили некоторый "дефолтный" launchSettings, который не надо его с нуля делать. В старых версиях VS настройки запуска для отладки хранились в самом файле проекта и была даже галка выбора хранить их в "общем" *.csproj или в "личном" *.userproj", но сейчас такого нет.


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

у студии имя файла launchSettigns забито железобетонно прям в исходниках, поэтому либо держать темплейт типа launchSettigns.template.json для всех, либо профили. у нас он в игноре для всех проектов.
19 окт 19, 12:28    [21997926]     Ответить | Цитировать Сообщить модератору
 Re: Git игнорит игнор  [new]
mayton
Member

Откуда: loopback
Сообщений: 42918
Может мы закроем уже этот топик? Ковыряем этот gitignore как ребёнок ковыряет ранку чтоб еще больше наковырять
пока воспаление не пойдет.
19 окт 19, 15:03    [21997958]     Ответить | Цитировать Сообщить модератору
 Re: Git игнорит игнор  [new]
hVostt
Member

Откуда:
Сообщений: 16165
mayton,

закрывай
19 окт 19, 16:03    [21997973]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / Программирование Ответить