Мне очень нравится Git.По крайней мере, мне нравится идея мерзавца.Возможность извлекать мой главный проект в виде отдельной ветки, где я могу изменить все, что захочу, без риска испортить все остальное, это здорово.Но это не работает.
По сути, мой рабочий процесс выглядит следующим образом:
- Извлечение стабильной версии в новую ветку для экспериментов с новым кодом
- Создайте кучуизменения - у меня нет намерения сохранять что-либо из этого, я просто экспериментирую.
- Посмотрите на все, что я изменил
- Добавьте все изменения, которые нужно отслеживать
- Зафиксируйте ветвь и отправьте ветку в начало (если это сработало, в противном случае пропустите этот шаг)
- Решите попробовать другой метод, вернитесь к мастеру
- Наблюдайте артефакты из экспериментальной ветви Iработал, хотя я нахожусь в основной ветке.
Каждый раз, когда я извлекаю ветку в другую ветку, вносим изменения в одну ветку, а затем извлекаю исходную ветку,У меня все еще есть все файлы и изменения, которые произошли в другой ветке.Это становится чрезвычайно разочаровывающим.Я читал, что это может случиться, когда у вас при этом открываются файлы в IDE, но я был очень осторожен с этим, и закрывал файлы в IDE, закрывал IDE и выключал мой сервер rails перед переключением.ветви, и это все еще происходит.Кроме того, запуск git clean -f либо удаляет все, что произошло после некоторого произвольного коммита (и при этом случайно), либо, как в последнем случае, ничего не меняет обратно в исходное состояние.
Я думал, что правильно использую git, но на данный момент я нахожусь в тупике.Я пытаюсь работать с кучей экспериментального кода, используя стабильную версию моего проекта, но мне все еще приходится вручную отслеживать и исправлять все сделанные мной изменения.Есть идеи или предложения?
git checkout -b photo_tagging
git branch # to make sure it's right
# make a bunch of changes, creations, etc
git status # see what's changed since before
git add . # approve of the changes, I guess, since if I do git commit after this, it says no changes
git commit -m 'these are changes I made'
git checkout master
git branch #=> *master
# look at files, tags_controller is still there, added in photo_tagging
# and code added in photo_tagging branch are still there in *master
Похоже, это происходит независимо от того, делаю я коммит или нет в ветке.