Мне очень нравится git. По крайней мере, мне нравится идея git. Возможность проверить мой мастер-проект как отдельную ветку, где я могу изменить все, что захочу, не рискуя прикрутить все остальное, потрясающе. Но он не работает.
В основном, мой рабочий процесс выглядит следующим образом:
- Оформить стабильную версию новой ветки для экспериментов с новым кодом
- Сделайте кучу изменений - у меня нет намерения сохранить что-либо из этого, я просто экспериментирую.
- Посмотрите на все, что я изменил.
- Добавить все изменения для отслеживания
- Зафиксируйте ветвь и нажмите ветвь в начало (если она сработала, в противном случае пропустите этот шаг)
- Решите попробовать другой метод, вернитесь к мастеру
- Наблюдайте за артефактами из экспериментальной ветки, в которой я работал, хотя я в ведущей ветке.
Каждый раз, когда я проверяю ветку на другую ветку, вношу изменения в одну ветку, а затем проверяю исходную ветку, у меня все еще есть все файлы и изменения, которые произошли в другой ветке. Это становится очень расстраивающим. Я читал, что это может произойти, когда у вас есть файлы, открытые в среде IDE при этом, но я был очень осторожен в этом, и оба закрыли файлы в среде IDE, закрыли IDE и закрыли мой сервер rails перед переключением ветвей, и это все еще происходит. Кроме того, при запуске 'git clean -f' либо удаляется все, что произошло после некоторого произвольного коммита (и, случайно, при этом), или, как и в последнем случае, ничего не изменило в исходное состояние.
Я думал, что правильно использую git, но на данный момент я здесь нахожусь здесь. Я пытаюсь работать с кучей экспериментального кода, используя стабильную версию моего проекта, но мне приходится вручную отслеживать и исправлять все изменения, которые я сделал. Любые идеи или предложения?
git checkout -b photo_tagging
git branch # to make sure it right
# make a bunch of changes, creations, etc
git status # see what 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
Кажется, это происходит, если я делаю фиксацию или нет в ветке.