Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Программирование |
![]() ![]() |
Топик располагается на нескольких страницах: [1] 2 вперед Ctrl→ все |
fkthat Member Откуда: Сообщений: 4322 |
Возможно ли как-то настройками заставить Git игнорировать изменения в файлах, которые уже были ранее закоммичены? Поясню. Если я добавляю в .gitignore строку, допустим, *.temp, то после этого, при добавлении в working tree нового файла foo.temp, он будет игнориться, но если до этого уже был файл bar.temp и он уже был ранее закоммичен, то при его (bar.temp) изменении Git все равно будет отображать его как "changed" и предложит эти изменения закоммитить. Можно ли это победить? |
15 окт 19, 18:36 [21994889] Ответить | Цитировать Сообщить модератору |
mayton Member Откуда: loopback Сообщений: 51129 |
Видимо файл был уже добавлен в индекс на коммит. Убери его оттуда командой$ git reset {filename} |
15 окт 19, 18:39 [21994891] Ответить | Цитировать Сообщить модератору |
fkthat Member Откуда: Сообщений: 4322 |
mayton, Нет, в том-то и дело, что этот файл должен быть в Git, я просто не хочу коммитить последующие изменения этого файла. (т.е., фактически, не делать ему git stage перед git commit, но так, чтобы это автоматически происходило и я его не видел в списке измененных файлов). Я даже опишу более конкретно - есть некоторый файл настроек аппликухи, в котором закоммичены некие "общие" настройки, мне надо там поменять настройки на локальной копии, но так чтобы они не уходили в общий репо. Я прекрасно понимаю, что я могу просто эти изменения не коммитить, типа "git add . && git reset foo.config && git commit -m blablabla", но делать это каждый раз немного дрочно, и, к тому же, всегда можно про это забыть и случайно его все-таки запушить со своими изменениями. |
15 окт 19, 19:02 [21994907] Ответить | Цитировать Сообщить модератору |
hVostt Member Откуда: Сообщений: 18990 |
зачем это побеждать? так и задумано. игнор работает как фильтр для отслеживания новых файлов, а не изменений в файлах. |
||
15 окт 19, 22:17 [21994999] Ответить | Цитировать Сообщить модератору |
hVostt Member Откуда: Сообщений: 18990 |
решается копированием файла шаблона в файл, который заигнорен. при билде. не нужно сюда приплетать гит, это потом порвёт все шаблоны команде, нафига такое нужно? |
||
15 окт 19, 22:18 [21995000] Ответить | Цитировать Сообщить модератору |
mayton Member Откуда: loopback Сообщений: 51129 |
+1 Я думаю что на этом можно закрыть вопрос. |
||||
16 окт 19, 10:07 [21995191] Ответить | Цитировать Сообщить модератору |
fkthat Member Откуда: Сообщений: 4322 |
Как и что это порвет, если локальные изменения не идут в репо? |
||
16 окт 19, 12:04 [21995328] Ответить | Цитировать Сообщить модератору |
fkthat Member Откуда: Сообщений: 4322 |
Я, блин, знаю прекрасно, для чего задуман игнор, скажем, лучше, так - я хочу "игнор++", который запретит гиту отслеживать изменнеия в определенном файле. |
||
16 окт 19, 12:24 [21995356] Ответить | Цитировать Сообщить модератору |
mayton Member Откуда: loopback Сообщений: 51129 |
А потом ты захочешь игнор--- который отменит действия твоего игнор++ и так далее. Диалектический спор надо искать не в гите а в твоих хотелках. |
||||
16 окт 19, 12:31 [21995367] Ответить | Цитировать Сообщить модератору |
hVostt Member Откуда: Сообщений: 18990 |
я уже сказал, какое решение. и оно лежит не в области системы контроля версий. 1. создаёте шаблон файла, который добавляется в систему контроля версий 2. создаёте шаг сборки, который копирует файл шаблона в нужный вам файл, если он отсутствует 3. нужный вам файл помещаете в игнор профит. можете сколько угодно править нужный вам файл, он будет проигнорирован. а при сборке он будет создан из шаблона, который под котролем, если нужного файла нет. |
||||
16 окт 19, 13:26 [21995409] Ответить | Цитировать Сообщить модератору |
hVostt Member Откуда: Сообщений: 18990 |
объясняю как порвёт. 1. создали файл some.txt и внесли в него изменения 2. добавили в систему контроля версий 3. добавили игнор последующих изменений в файле 4. теперь у нескольких разработчиков файл со своими изменениями 5. какой-то Вася командой git переносит изменения в файле в репо 6. у всех остальных происходит локальный п....ц, как смержить свои изменения с чужими, если никакой истории собственных изменений не велось? что делать? ваш вопрос исходит от непонимания основных принципов работы распределённых систем контроля версий, важности истории изменений и согласованности этих изменений между всеми участниками команды. |
||||
16 окт 19, 13:29 [21995412] Ответить | Цитировать Сообщить модератору |
hVostt Member Откуда: Сообщений: 18990 |
fkthat, опять же. все разработчики понимают, что если файл лежит в репо, то он отслеживает изменения. теперь, вы вносите изменение в этот файл с уверенностью, что изменения будут доставлены в репо. но этого не происходит. по каким-то причинам вы грохаете свою локальную репу, будучи уверенными, что все изменения ушли. но этого не происходит. было просто: файлы либо под контролем версий, либо нет. вы предлагаете: какую-то хрень, теперь появляются файлы недоподконтролем версий, куй его знает что вообще происходит, если таких файлов становится чуть более, чем дофига. а ведь у них тоже какая-то своя покоцанная история изменений, которая непонятно когда и почему заканчивается. |
16 окт 19, 13:34 [21995421] Ответить | Цитировать Сообщить модератору |
mayton Member Откуда: loopback Сообщений: 51129 |
Имеет смысл реструктуризировать ваш проекто чтобы темповые или логи или прочие мутирующие файлы никогда не попадали в кандидаты на коммит. |
16 окт 19, 13:45 [21995434] Ответить | Цитировать Сообщить модератору |
fkthat Member Откуда: Сообщений: 4322 |
Как всегда, один ты у нас тут такой всепонимающий ![]() Мля, мне нах не нужна там никакая история изменеий. Давай, объясню конкретную ситуацию. Есть проект ASP.NET Core. Файл Properties/launchSettings.json в котором некоторые профили, которые все используют. Мне надо локально добавить профиль лично для себя, который буду использовать только я на своей локальной машине. И мне лень дрочиться при каждом коммите следить, чтобы мои эти изменения не ушли в общий репо. Для новых файлов я даже могу сделать локальный игнор (.git/info/exclude), но, вот, для тех что уже есть - хер. Походу, просто, такой возможности нет. |
||
16 окт 19, 14:06 [21995465] Ответить | Цитировать Сообщить модератору |
mayton Member Откуда: loopback Сообщений: 51129 |
fkthat, если ты лид или владелец ПО - то делай и закрывай вопрос. Если это общая проблема вашей команды. Я даю 80% что за нее проголосуют на ретроспективе и применят. P.S. Ничего нового под луной уже 2 тыщи лет. Все давно придумано. |
16 окт 19, 14:12 [21995472] Ответить | Цитировать Сообщить модератору |
hVostt Member Откуда: Сообщений: 18990 |
я вроде расжувал и объяснил, тут не надо семи пядей во лбу.
ну ё-маё. может хоть раз документацию, хотя бы для приличия, почитаешь? :) https://docs.microsoft.com/ru-ru/aspnet/core/security/app-secrets?view=aspnetcore-2.2&tabs=windows храни свои конфиги в своих секретах за рамками репы. чего как маленький-то? ) |
||||
17 окт 19, 00:40 [21995956] Ответить | Цитировать Сообщить модератору |
hVostt Member Откуда: Сообщений: 18990 |
fkthat, https://docs.microsoft.com/ru-ru/aspnet/core/fundamentals/environments?view=aspnetcore-2.2 там даже выделено
|
||
17 окт 19, 00:44 [21995958] Ответить | Цитировать Сообщить модератору |
fkthat Member Откуда: Сообщений: 4322 |
hVostt, Египетская сила. Да при чем тут какие-то секреты? Где же это я писал, что у меня в json секреты? Ты вообще хоть вчитываешься в то, что читаешь, или пишешь просто лишь бы сумничать? |
17 окт 19, 11:18 [21996266] Ответить | Цитировать Сообщить модератору |
fkthat Member Откуда: Сообщений: 4322 |
Разрулил простейшим хуком на пре-коммит. |
18 окт 19, 11:48 [21997271] Ответить | Цитировать Сообщить модератору |
hVostt Member Откуда: Сообщений: 18990 |
походу ты тупо не вдупляешь. либо документацию даже не читал. секреты, это не обязательно про безопасность. это любое изменение в конфиге, которое интересно только тебе, и ты не хочешь, чтобы оно было в репозитории. любое. ты похоже не просто не вчитываешься, ты даже не читаешь, что тебе пишут. печально.
ну в общем, через ж. не жалуйся потом на чей-то говнокод, окэ? :) решение, с менеджером секретов -- это прям решение для твоей задачи в лоб. но увы и ах. видио слишком сложна. |
||||
18 окт 19, 12:55 [21997344] Ответить | Цитировать Сообщить модератору |
hVostt Member Откуда: Сообщений: 18990 |
по ходу кто-то болт клал на любые доки. |
||
18 окт 19, 12:56 [21997346] Ответить | Цитировать Сообщить модератору |
fkthat Member Откуда: Сообщений: 4322 |
Открой для себя волшебную переменную окружения "ASPNET_ENVIRONMENT". И открой для себя, что launchSettings.json в юзер сикретс не хранится. ЗЫ. Тебе, как обычно, лишь бы с зеленой пеной у рта в спор кинуться, поэтому впредь каких-либо обсуждений с тобой я буду избегать. |
||
18 окт 19, 14:25 [21997459] Ответить | Цитировать Сообщить модератору |
hVostt Member Откуда: Сообщений: 18990 |
fkthat, я смотрю ты как продолжал класть болт на доки, так и будешь продолжать. в любом конфиге json могут храниться секреты, сам секрет настраивается в csproj, а конфигурируется его использование в Program.cs я понимаю, что это для тебя недостижимая вышка, иначе бы ты понял, что ASPNET_ENVIRONMENT тут никаким боком к делу не относится. с такой нежной организацией натуры и нежеланием читать доки, тебе и правда нужно избегать любых обсуждений. |
18 окт 19, 15:59 [21997548] Ответить | Цитировать Сообщить модератору |
fkthat Member Откуда: Сообщений: 4322 |
Может не будешь тогда балаболить, а покажешь, как мне сохранить launchSettings.json в user secrets? А то тут твоих сообщений половина обсуждения, а практической пользы от них полный ноль. Или у тебя знания как раз только чтением доков и ограничены? Я-то как раз на практике использовал и user secrets и azure key vault.
Сообщение было отредактировано: 18 окт 19, 21:01 |
|||
18 окт 19, 16:10 [21997560] Ответить | Цитировать Сообщить модератору |
fkthat Member Откуда: Сообщений: 4322 |
ASPNET_ENVIRONMENT позволяет (в том числе) запускать приложение с различными конфигами на выбор, т.ч. очень даже боком. |
||
18 окт 19, 16:14 [21997566] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: [1] 2 вперед Ctrl→ все |
Все форумы / Программирование | ![]() |