Мне очень нравится git. По крайней мере, мне нравится идея git. Возможность проверить свой главный проект как отдельную ветку, где я могу изменить все, что захочу, без риска испортить все остальное - это здорово. Но это не работает.
В основном, мой рабочий процесс выглядит следующим образом:
Каждый раз, когда я проверяю перейти в другую ветку, внести изменения в одну ветку, а затем проверить исходную ветку, у меня все еще есть все файлы и изменения, которые произошли в другой ветке. Это очень расстраивает. Я читал, что это может произойти, когда у вас есть файлы, открытые в 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
Похоже, это произойдет вне зависимости от того, делаю ли я коммит в ветке или нет.